逆戰班 網格布局(grid)

2021-10-03 09:38:36 字數 2696 閱讀 2407

grid 是乙個二維的布局方法 縱橫兩個方向同時存在

使用display:grid 形成網格布局,將乙個容器分成多分,網格可以進行多種組合

網格有行與列之分,水平的為行(row),垂直的為列(column)

網格的屬性:

應用在父容器的屬性:

grid-template-rows 該屬性定義行數的同時也定義了行寬

grid-template-columns 該屬性定義列的同時也定義列列的寬度

屬性值的單位既可以使用畫素作為單位,也可以使用百分比作為單位來定義網格,百分比所得出的最終寬度,基於父元素的容器的寬度。

還有乙個網格中的fr關鍵字,利用fr對網格進行均分

fr代表每行或者每列在整個寬度或者高度中佔多少 grid-template-rows :1fr 2fr;這代表在一行內,後乙個網格的寬度是前乙個網格的兩倍,grid-template-rows :150px;1fr 2fr;這表示在一行內第乙個網格的寬度是150px,而剩下的兩個根據剩餘的空間,進行計算,第三個是第二個的兩倍

單獨的去設定每一行或者的列的寬度過於繁瑣,可以使用repeat()來進行多個設定

grid-template-columns: repeat(4,1fr);

grid-template-rows: repeat(4,1fr);

使用grid-column-gap 和grid-row-gap去設定單元格之間的距離,這個布局不會將網格擠出父元素,只會壓縮單元格的寬度

grid-column-gap 設定列之間的寬度

grid-row-gap設定行之間的寬度

grid-gap 這是二者的復合寫法 有固定順序,先行後列

對網格進行行列的設定後,要對網格進行區域的劃分

使用grid-template-areas 對網格進行區域的劃分 劃分有乙個條件,便是,所有劃分的區域必須為矩形,否則不會生效

常用的方法

a1,a2等為乙個名稱,可以變定義,這意味著將四個區域分別進行命名,使用時,更加方便

子元素使用grid-area進行區域選擇

div 意思是,div佔據了a1的區域

也可以給單元格中的元素定義對齊的方式

align-items 定義了整體子項的垂直居中方式

justify-items 整體子項的水平居中方式

值有 start end center 預設值為stretch

justify-content 定義了網格整體的水平對齊方式

alitems-contents 定義了網格整體的垂直對齊方式

預設 stretch

start 在開頭對齊

center 在中間對齊

end 在尾部對齊

space-between 在兩端對齊,中間空出空間

space-around 內容中間空出的距離是兩端點空出的兩倍

spce-evenly 端點空出的距離與中間的距離相等

給子項新增的屬性:

以下四個屬性用於移動每乙個方塊

grid-column-start 水平方向上佔據的起始位置

grid-column-end 水平方向上佔據的結束位置

grid-row-start 垂直方向上佔據的起始位置

grid-row-end 垂直方向上的結束位置

注:只有在grid-column-end和grid-row-end中可以設定span操作

span去設定的不是結束的位置,而是個數

正常寫數字是位置,加上span是個數 是方塊的個數,佔據的了幾個方塊,

加上span之後,便不再是結束的位置,而是方塊的個數

grid-area 值不需要加引號 將子元素與網格所發分的區域對應起來

grid-area:水平開始 / 垂直開始 / 水平結束 /垂直結束

1.可以寫對應網格的名字

2.也可以寫對丁的線的數字

grid-row-start / grid-column-start / grid-row-end / grid-column-end

第二種遍試與上邊類似

第一種:

子項也有自身的對齊方式

align-self 垂直方向單個子項的對齊方式

justify-self 水平方向 單個子項的對齊方式

Grid網格布局

前言 就目前為止,css的grid和flexbox結合將是解決布局的最佳方案。雖然瀏覽器對css grid和flexbox的屬性未完全支援,但對於實現布局而言,這已是一種非常完美的結合。如果css box alignment module level3能得到更好的支援的話,那麼對於web的布局將是一...

Grid網格布局

flex 布局是軸線布局,只能指定 專案 針對軸線的位置,可以看作是一維布局。grid 布局則是將容器劃分成 行 和 列 產生單元格,然後指定 專案所在 的單元格,可以看作是二維布局。grid 布局遠比 flex 布局強大。可以使用repeat repeat 3,33.33 定義三列,每一列為33....

grid網格布局

1.1 容器和專案 採用網格布局的區域,稱為 容器 container 容器內部採用網格定位的子元素,稱為 專案 item 1.2 行和列 容器裡面的水平區域稱為 行 row 垂直區域稱為 列 column 1.3 單元格 行和列的交叉區域,稱為 單元格 cell 正常情況下,n行和m列會產生n x...