Grid 網格二維布局 筆記

2021-10-08 00:15:37 字數 3558 閱讀 2628

首先,你必須使用 display: grid 將容器元素定義為乙個 grid(網格) 布局,使用 grid-template-columns 和 grid-template-rows 設定 列 和 行 的尺寸大小,然後通過 grid-column 和 grid-row 將其子元素放入這個 grid(網格) 中。

網格容器(grid container)

網格項(grid item)

網格線(grid line)

網格軌道(grid track)

網格單元格(grid cell)

網格區域(grid area)

網格容器(grid container)

應用 display: grid 的元素。這是所有 網格項(grid item)的直接父級元素。在這個例子中,container 就是 網格容器(grid container)。

網格項(grid item)

網格容器(grid container)的子元素(例如直接子元素)。這裡 item 元素就是網格項(grid item),但是 sub-item 不是。

網格線(grid line)

構成網格結構的分界線。它們既可以是垂直的(「列網格線(column grid lines)」),也可以是水平的(「行網格線(row grid lines)」),並位於行或列的任一側。例如,這裡的黃線就是一條列網格線

網格軌道(grid track)

兩條相鄰網格線之間的空間。你可以把它們想象成網格的列或行。下圖是第二條和第三條 行網格線 之間的 網格軌道(grid track)。

網格單元格(grid cell)

兩個相鄰的行和兩個相鄰的列網格線之間的空間。這是 grid(網格) 系統的乙個「單元」。下圖是第 1 至第 2 條 行網格線 和第 2 至第 3 條 列網格線 交匯構成的 網格單元格(grid cell)。

網格區域(grid area)

4條網格線包圍的總空間。乙個 網格區域(grid area) 可以由任意數量的 網格單元格(grid cell) 組成。下圖是 行網格線1和3,以及列網格線1和3 之間的網格區域。

display: display: grid | inline-grid;將元素定義為網格容器,並為其內容建立新的 網格格式上下文。

grid-template-columns:使用空格分隔的值列表,用來定義網格的列的尺寸大小,這些值表示的是網格軌道的大小,他們之間的空格表示網格線

.container
grid-auto-columns / grid-auto-rows

網格之間的間距 (gap) 後乙個的屬性為前兩個的縮寫

grid-row-gap/gird-columns-gap

gid-gap:

與行軸、列軸對齊的屬性

align-items/justify-items

place-items: 第乙個值設定 align-items 屬性,第二個值設定 justify-items 屬性。如果省略第二個值,則將第乙個值同時分配給這兩個屬性。

更詳細的屬性下方鏈結

grid-column:

定義列佔據網格線的起,終點位置。

上面**可以縮寫成:

grid-columns: 1 / 4 /* 指的是網格項從網格線起點和終點 */

// 其他不同的寫法

grid-columns 1 / span 4 /*指的是網格項從網格線1的位置橫跨4個*/

grid-row-start、grid-row-end

2.grid-area:

為網格項提供乙個名稱,以便可以 被使用網格容器 grid-template-areas 屬性建立的模板進行引用。 另外,這個屬性可以用作grid-row-start + grid-column-start + grid-row-end + grid-column-end 的簡寫。

.item
css **

.item-d
沿著 inline(行)軸線對齊網格項( 相反的屬性是 align-self ,沿著 block(列)軸線對齊)。此值適用於單個網格項內的內容。

.item
屬性值,在乙個宣告中設定所有以下屬性的簡寫: grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, 和 grid-auto-flow 。(注意:您只能在單個網格宣告中指定顯式或隱式網格屬性)。

以下兩個**塊是等效的

css**

.container
css**

.container
自己敲的案例

其他高階用法,下發鏈結

第一種方式

html**:23

4567

777

css**:

width: 90%;

max-width: 960px;

margin: 0 auto;

display: grid;

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

grid-template-rows: repeat(4,50px);

grid-gap: 10px;

}border:1px solid red;

}

.item1

.item4

.item6

第二種方式:

html**:34

11972

56810

css**:

.box-a

.box-b

.box-c

.box-d

.box-e

.box-f

.box-g

.box-h

.box-i

.box-j

.box-k

width: 90%;

margin: 30px auto;

display: grid;

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

grid-template-rows: repeat(4, 50px);

grid-gap: 10px;

grid-template-areas:

"header header header header"

"section1 section2 section3 section4"

"section5 section6 section3 section7"

"section8 section9 section3 section10";

}border:1px solid red;

}

css grid 布局完全指南(** grid 詳細教程)

Grid網格布局入門筆記

指定乙個容器採用網格布局,在父元素中定義grid屬性 display grid 塊級元素布局 或display inline grid 行內元素 在容器中新增了網格布局後,就要劃分行和列,columns 列 row 行 grid template columns 定義每一列的寬度 grid temp...

Grid布局(網格布局)

網格布局 grid 是 css 中乙個布局方案。它將網頁劃分成乙個個網格,可以任意組合不同的網格,做出各種各樣的布局。以前,只能通過複雜的 css 框架達到的效果,現在瀏覽器內建了。下面這樣的布局,就是grid布局。grid 布局與 flex 布局有一定的相似性,都可以指定容器內部多個專案的位置。但...

網格布局(grid布局)

他可以將頁面分為多個網格,可以任意組合不同的網格 做出各種各樣的布局。網格布局為二維性質的。grid row gap 1rem 行間距 grid column gap 1rem 列間距 grid gap 1rem 設定行列間距 grid template columns 列寬和列數 grid tem...