整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          你要的CSS布局都在這里

          家好,我是三木。

          這篇文章,替大家匯總了css的布局方式,在每個布局的結尾附上了我認為比較好的文章鏈接,不僅僅可以當作學習資料,也可以當作方法的查詢手冊,以后開發的時候忘記了某個屬性就來查查。


          看完推薦的文章保準解決你 99% 的css布局問題


          每篇文章不僅僅包含介紹,還有代碼案例,以及如w3c網站的在線代碼編輯,可以自己修改屬性嘗試。


          普通布局

          使用方法——display: block/inline/inline-block

          根據CSS規范的規定,每一個網頁元素都有一個display屬性,用于確定該元素的類型,每一個元素都有默認的display屬性值,比如div元素,它的默認display屬性值為“block”,成為“塊級”元素(block-level);而span元素的默認display屬性值為“inline”,稱為“行內”元素。

          資料文章:

          w3c:https://www.w3schools.com/cssref/playdemo.asp?filename=playcss_display

          w3c:https://www.w3school.com.cn/css/css_inline-block.asp

          用法:https://zhuanlan.zhihu.com/p/65353887

          浮動布局

          使用方法:float:left/right

          指定一個元素應沿其容器的左側或右側放置,允許文本和內聯元素環繞它。

          float屬性用于定位和格式化內容,例如讓圖像向左浮動到容器中的文本。

          float的值有:

          • left- 元素浮動到其容器的左側
          • right- 元素浮動到其容器的右側
          • none- 元素不浮動(將僅顯示在文本中出現的位置)。這是默認的
          • inherit- 元素繼承其父元素的浮點值

          資料文章:

          w3c:https://www.w3schools.com/css/css_float.asp

          MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/float

          CSS深入理解之float浮動:https://segmentfault.com/a/1190000014554601

          彈性布局

          使用方法——display:flex/inline-flex

          Flexible Box 模型,通常被稱為 flexbox,是一種一維的布局模型。它給 flexbox 的子元素之間提供了強大的空間分布和對齊能力。

          容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;交叉軸的開始位置叫做cross start,結束位置叫做cross end。

          項目默認沿主軸排列。單個項目占據的主軸空間叫做main size,占據的交叉軸空間叫做cross size。

          容器有以下屬性:

          • flex-direction-屬性決定主軸的方向(即項目的排列方向)
          • flex-wrap-定義設置換行模式
          • flex-flow-定義了項目在主軸上的對齊方式
          • justify-content-定義項目在交叉軸上如何對齊
          • align-items-定義項目在交叉軸上如何對齊
          • align-content-定義了多根軸線的對齊方式

          資料文章:

          w3c:https://www.w3schools.com/css/css3_flexbox_container.asp

          Flex 布局教程:語法篇:https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

          深度解析 CSS Flexbox 布局:https://juejin.cn/post/6844904116141948936

          48張小圖帶你領略flex布局之美:https://juejin.cn/post/6866914148387651592

          定位布局

          使用方法——position:absolute/relative...

          給元素設置postion屬性后,就可以定義該元素的top,bottom,left,right四個屬性。當然postion的值不同,對應的top,bottom,left,right這四個屬性的值代表的含義也不相同


          position屬性用來指定一個元素在網頁上的位置,一共有5種定位方式:

          • static-靜態
          • relative-相對定位
          • fixed-固定定位
          • absolute-絕對定位
          • sticky-粘性定位

          資料文章:

          w3c: https://www.w3schools.com/css/css_positioning.asp

          MDN:https://developer.mozilla.org/zh-CN/docs/Web/CSS/position

          CSS 定位詳解:https://www.ruanyifeng.com/blog/2019/11/css-position.html

          表格布局

          使用方法——display:table/table-row/table-cell....

          有兩種方式使用表格布局 -HTML Table(<table>標簽)和CSS Table(display:table 等相關屬性)。

          HTML Table是指使用原生的<table>標簽,而CSS Table是指用CSS屬性模仿HTML 表格的模型。


          table布局的display總共包含如下值

          • table:指定對象作為塊元素級的表格,相當于html標簽<table>
          • inline-table:指定對象作為內聯元素級的表格,相當于html標簽<table>
          • table-caption:指定對象作為表格標題,相當于html標簽<caption>
          • table-cell:指定對象作為表格單元格,相當于html標簽<td>
          • table-row:指定對象作為表格行,相當于html標簽<tr>
          • table-row-group:指定對象作為表格行組,相當于html標簽<tbody>
          • table-column:指定對象作為表格列,相當于html標簽<col>
          • table-column-group:指定對象作為表格列組顯示,相當于html標簽<colgroup>
          • table-header-group:指定對象作為表格標題組,相當于html標簽<thead>
          • table-footer-group:指定對象作為表格腳注組,相當于html標簽<tfoot>

          資料文章:

          display:table的幾個用法:https://blog.51cto.com/u_4048786/3205160

          css table布局大法:https://segmentfault.com/a/1190000007007885

          display:table的用法:https://www.jianshu.com/p/037a706ba9e9

          柵格布局

          使用方法 ——display:grid

          網格布局將網頁劃分成一個個網格,可以任意組合不同的網格,做出各種各樣的布局。

          column-gap Specifies the gap between the columns

          • grid:設置grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, and the grid-auto-flow屬性
          • grid-area:設置grid-row-start, grid-column-start, grid-row-end, grid-column-end屬性
          • grid-auto-columns:設置瀏覽器自動創建的多余網格的列寬
          • grid-auto-flow:設置排序方式
          • grid-auto-rows:設置瀏覽器自動創建的多余網格的行高
          • grid-column :設置grid-column-start and、grid-column-end properties
          • grid-column-end:設置右邊框所在的垂直網格線
          • grid-column-gap:設置列間距
          • grid-column-start: 設置左邊框所在的垂直網格線
          • grid-gap: 設置grid-row-gap、grid-column-gap屬性
          • grid-row: 設置grid-row-start、grid-row-end屬性
          • grid-row-end: 設置下邊框所在的水平網格線
          • grid-row-gap: 設置行間距
          • grid-row-start:設置上邊框所在的水平網格線
          • grid-template: 設置grid-template-rows,、grid-template-columns、grid-areas屬性
          • grid-template-areas:設置網格的區域,一個區域由多少單元格組成
          • grid-template-columns:設置列寬
          • grid-template-rows:設置行高
          • row-gap:設置行與行之間的間距

          資料文章:

          w3c:https://www.w3schools.com/css/css_grid.asp

          CSS Grid 網格布局教程:https://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html

          Grid 布局:https://juejin.cn/post/6854573220306255880

          A Complete Guide to Grid:https://css-tricks.com/snippets/css/complete-guide-grid/


          多列布局

          使用方法——column-count

          column-count: length | auto

          column-width:interger | auto

          • column-count描述元素的列數
          • column-fill:設置多列內容的平衡填充模式
          • column-gap屬性用來設置元素列之間的間隔(gutter)大小
          • column-rule屬性規定了列與列之間的直線
          • column-rule-color設置在多列布局中被畫在兩列之間的規則(線條)的顏色
          • column-rule-style設置在多列布局中被畫在兩列之間的規則(線條)的樣式
          • column-rule-width設置在多列布局中被畫在兩列之間的規則(線條)的寬度
          • column-span設置某一個內容是否跨多欄顯示。
          • columns用來設置元素的列寬和列數

          資料文章:

          淺談CSS3多列布局:https://juejin.cn/post/6844903450623524872

          CSS columns分欄布局教程:https://www.zhangxinxu.com/wordpress/2019/01/css-css3-columns-layout/

          TML中的表格是由<table>標簽進行定義的,表格在HTML中的表現形式與使用方法與word中的表格非常類似。多數情況使用Dreamweaver的可視化視圖只做表格更為簡單、方便。本文主要講述如何使用代碼來編寫表格,讓大家掌握表格的代碼書寫格式與其對應的屬性。

          表格的標簽組成

          HTML中的表格是由<table>為主體標簽,瀏覽器會將該標簽解釋為一個表格。表格中的行使用<tr>標簽進行定義。<tr>標簽為<table>標簽的子類,設置若干個<tr>標簽可以將表格分割為若干個行。<td>標簽用于定義表格的列,<td>標簽為又是<tr>標簽的子類,因此每個行都需要設置相應數量的<td>標簽來分割列,形成一個完整的表格。

          表格的標簽組合關系為:

          <table>

          <tr>

          <td>我是單元格1</td>

          <td>我是單元格2</td>

          </tr>

          </table>

          表格中可以插入文本、圖片、列表、段落、表單、水平線等任何html標簽,甚至可以用來做頁面布局。但是table布局存在代碼冗余過長、不符合HTML規范、搜索引擎不友好等問題。因此建議大家盡量不要使用table進行頁面布局,除非頁面中確實需要一張表格。

          剩下的<th>、<thead>、<tbody> 和 <tfoot>很少被用到,這是由于瀏覽器對它們的支持不太好。

          表格和邊框屬性

          表格自身可以定義border屬性來決定表格邊框的寬度,該屬性的值默認是以數字單位進行顯示,例如border=”1″該值的單位為px。注意,不要在border的數值后面加上任何單位,否該值無法正確識別。

          表格的表頭

          在<table>中可以通過<th>標簽設置表頭,表頭的<th>標簽與<tr>標簽屬于平級,并且表頭一般出現在<tr>標簽的前面。對于一個表格來說,表頭并不是必須的,可以根據需要插入表頭。<th>標簽內的文字會被自動加粗。

          單元格的合并

          單元格的合并分為垂直合并與水平合并,在合并時需要確定其他行與列中是否有對應數量的單元格。

          水平合并單元格使用colspan屬性,其值是用數字的形式確定需要合并的單元格數量,例如colspan=”2″即代表向右合并兩個單元格。

          垂直合并單元格使用rowspan屬性,與水平合并的屬性相同,同樣也是以數字形式確定需要合并的單元格數量,例如rowspan=”2″代表向下合并兩個單元格。

          實例演示代碼:

          <table border=“1”>

          <tr>

          <th>姓名</th>

          <th colspan=“2”>電話</th>

          </tr>

          <tr>

          <td>Bill Gates</td>

          <td>555 77 854</td>

          <td>555 77 855</td>

          </tr>

          </table><h4>橫跨兩行的單元格:</h4>

          <table border=“1”>

          <tr>

          <th>姓名</th>

          <td>Bill Gates</td>

          </tr>

          <tr>

          <th rowspan=“2”>電話</th>

          <td>555 77 854</td>

          </tr>

          <tr>

          <td>555 77 855</td>

          </tr>

          </table>

          單元格邊距

          表格具有與padding樣式類似的內邊距功能。通過在<table>標簽內定義cellpadding屬性,來為其標簽下的所有<td>元素設置內邊距。cellpadding屬性的參數是值是以數字的形式來確定邊距的大小,例如cellpadding=”10″ 則表示table中的所有<tr>標簽內邊距為10px

          單元格間距

          單元格的間距是設置<tr>標簽的外邊距,這個也與css樣式中的margin類似,通過在<table>標簽內定義cellspacing屬性,來為其標簽下的所有td元素設置外邊距。該屬性也是以數字的形式來確定外邊距的大小,例如cellspacing=”10″則表示這個table中的所有<tr>標簽的外邊距為10px

          為表格設置背景

          表格可以通過background屬性為表格或單元格設置任意圖片作為背景,其使用方法非常像css中的background。為background設置對應的圖片路徑,即可使單元格顯示相應的圖片。例如background=”table_bg.gif”

          表格內容的對齊排列

          表格的對齊分為水平對齊和垂直對齊。它們分別是align屬性與valign屬性,將這兩個屬性插入到對應的<td>標簽中即可完成單元格內文本或圖像的對齊。

          水平對齊align分別有三個值:left左對齊、center水平居中、right右對齊

          垂直對齊valign也有三個值:top頂端對齊、middle垂直居中、bottom底部對齊、baseline為基線對齊。

          其中基線對齊可能無法從字面上理解,其實基線對齊也就是文本出現在表格的中上部而不是正中央。如果文字不大的話,效果和middle差不多,比middle稍微靠上一點。

          私信發送【前端】有驚喜!

          TML中常用的布局元素:<table>、<div>+CSS

          <table>標簽:

          <table>指的是表格,用表格來搭建界面布局,即用表格的嵌套,來搭建界面布局。

          <table>布局優勢:

          table優勢:開發時間短(使用DW開發速度快);純table各瀏覽器不會有兼容問題;內容可自適應;在搜索引擎排名能靠前;

          但是 table如果布局變更,需要重新開發;如果table里有div ul 等,可能會出現瀏覽器兼容問題;加載速度慢;table嵌套的太多,運維是非常困難的。

          <div>塊級(block-level)標簽:

          DIV是層疊樣式表中的定位技術,全稱DIVision,即為劃分。有時可以稱其為圖層。

          <div>布局優勢:

          一.精簡代碼,減少重構難度。

          網站使用DIV+CSS布局使代碼很是精簡,css文件可以在網站的任意一個頁面進行調用,而若是使用table表格修改部分頁面卻是顯得很麻煩。要是一個門戶網站的話,需手動改很多頁面,而且看著那些表格也會感覺很亂也很浪費時間,但是使用css+div布局只需修改css文件中的一個代碼即可。

          二.網頁訪問速度

          使用了DIV+CSS布局的網頁與Table布局比較,精簡了許多頁面代碼,那么其瀏覽訪問速度自然得以提升,也從而提升了網站的用戶體驗度。

          三.SEO優化

          采用div-css布局的網站對于搜索引擎很是友好,因此其避免了Table嵌套層次過多而無法被搜索引擎抓取的問題,而且簡潔、結構化的代碼更加有利于突出重點和適合搜索引擎抓取。

          四.瀏覽器兼容性

          若使用table布局網頁,在使用不同瀏覽器情況下會發生錯位,而div+css則不會,無論什么瀏覽器,網頁都不會出現變形情況。


          HTML中常用的3種布局方式:

          1.流動式布局:是HTML網頁默認的布局方式

          特點:

          1.塊級元素都會在所處的包含元素內自上而下按順序處置延伸分布,且默認狀態下,塊級元素占整個文檔流,默認寬度為100%。

          2.內聯元素都會在所處的包含元素內從左到右水平分布顯示,不占整個文檔流。

          常見的塊級(block)元素有:<h1-h5> 、<table>、 <ul>、<li> 、<p> 、<form>、 ol

          常見的內內聯(行內)元素有:<a>、<span>、<img>、<input>、<select>、<textarea>

          2.浮動布局(float)

          特點:

          浮動布局依靠【 浮動屬性 float:left/right/... 】來使標簽脫離文檔流,達到兩個塊級元素并排顯示的效果。

          float:left ; 浮動脫離當前文檔流浮動。

          同時可以依靠【展示屬性display:inline/block/inline-block】來進行行內元素和塊級元素的效果切換。從而達到靈活運用塊級元素和行內元素布局的效果。

          3.層模型布局又叫定位布局

          特點:

          當我們應擁div布局是,在第一層塊界面上來做第二層塊界面的開發時,就要用到我們所說的定位布局。

          通過運用【定位屬性position:absolute/relative/fixed】 來進行第二層界面的定位布局。

          網頁是靜態的,網頁上的定位

          position:absolute ;絕對定位脫離文檔流,不受浮動影響,就是相對于窗體(body)邊界的margin定位。

          position:relative; 相對定位不脫離文檔流,相對于父級標簽元素的位置定位。

          position:fixed;固定位置,不會受任何因素影響。

          滾動條移動前

          滾動條移動后

          優先層顯示方法:【屬性:z-index:0/1/2...】

          特點: 數值越大,越優先顯示。

          注意:只有元素使用了position屬性的,才具有z-index屬性。


          本文部分內容來自網絡,如有侵權,請聯系修改。


          上一篇:11.HTML圖片格式與優化
          下一篇:HTML 鏈接
          主站蜘蛛池模板: 国产主播福利一区二区| 无码人妻精品一区二区蜜桃百度 | 国产亚洲一区二区三区在线观看| 亚洲一区二区影院| 国产午夜毛片一区二区三区| 成人中文字幕一区二区三区| 亚洲熟女一区二区三区| 国产精品一区二区香蕉| 亚洲丰满熟女一区二区哦| 少妇无码一区二区二三区| 99久久精品费精品国产一区二区| 国产精品一区不卡| 国产在线一区二区三区av| 天堂Av无码Av一区二区三区| 99久久人妻精品免费一区| 三上悠亚国产精品一区| 无码毛片一区二区三区中文字幕| 国产精品熟女视频一区二区| 中文字幕无线码一区2020青青| 久久人做人爽一区二区三区 | 日韩亚洲AV无码一区二区不卡| 国偷自产Av一区二区三区吞精| 国产精品免费大片一区二区| 国产日韩精品一区二区在线观看| 加勒比无码一区二区三区| 糖心vlog精品一区二区三区| 无码一区二区三区爆白浆| 成人免费视频一区| 视频一区二区三区在线观看| 欧洲精品码一区二区三区| 国产精品视频无圣光一区| 色一情一乱一伦一区二区三区| 国产一区二区三区在线看片 | 中文字幕在线无码一区| 亚洲综合av永久无码精品一区二区| 清纯唯美经典一区二区| 日韩精品区一区二区三VR| 人妖在线精品一区二区三区| 亚洲.国产.欧美一区二区三区| 日韩伦理一区二区| 中文字幕亚洲乱码熟女一区二区 |