Grid佈局是一種二維佈局方法,可以在行和列中佈置內容。所以在任何網格中都有兩個軸,橫軸(即行軸,內聯)和縱軸(即列軸,塊)。css
網格是一組相交的水平線和垂直線,它定義了網格的列和行。咱們能夠將網格元素放置在與這些行和列相關的位置上git
經過在元素上聲明 display:grid 或 display:inline-grid 來建立一個網格容器。一旦咱們這樣作,這個元素的全部直系子元素將成爲網格元素。github
經過 grid-template-columns 和 grid-template-rows 屬性來定義網格中的行和列。這些屬性定義了網格的軌道。一個網格軌道就是網格中任意兩條線之間的空間。app
軌道可使用任何長度單位進行定義。
網格還引入了一個新的長度單位fr表明網格容器中可用空間的一等份。函數
有着多軌道的大型網格可以使用 repeat() 標記來重複部分或整個軌道列表。佈局
.wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; }
二者等價code
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); }
Repeat 語句能夠用於重複軌道列表中的一部分。在下面的例子中我建立了一個網格:它起始軌道爲20像素,接着重複了6個1fr的軌道,最後再添加了一個20像素的軌道。blog
.wrapper { display: grid; grid-template-columns: 20px repeat(6, 1fr) 20px; }
若是在網格定義以外又放了一些東西,或者由於內容的數量而須要的更多網格軌道的時候,網格將會在隱式網格中建立行和列.
按照默認,這些軌道將自動定義尺寸,因此會根據它裏面的內容改變尺寸。
也能夠在隱式網格中用 grid-auto-rows 和 grid-auto-columns 屬性來定義一個設置大小尺寸的軌道。get
在設置一個顯式的網格或者定義自動建立的行和列的大小的時候,咱們也許想給網格一個最小的尺寸,確保他們能擴大到容納他裏面添加的內容。
網格用minmax()函數來解決這個問題。it
當咱們定義網格時,咱們定義的是網格軌道,而不是網格線。Grid 會爲咱們建立編號的網格線來讓咱們來定位每個網格元素.
網格線的編號順序取決於文章的書寫模式。在從左至右書寫的語言中,編號爲 1 的網格線位於最左邊。在從右至左書寫的語言中,編號爲 1 的網格線位於最右邊。
使用了grid-column-start, grid-column-end, grid-row-start 和 grid-row-end 屬性
一個網格單元是在一個網格元素中最小的單位, 從概念上來說其實它和表格的一個單元格很像。
網格元素能夠向行或着列的方向擴展一個或多個單元,而且會建立一個網格區域。網格區域的形狀應該是一個矩形 - 也就是說你不可能建立出一個相似於「L」形的網格區域。
在兩個網格單元之間的 網格橫向間距 或 網格縱向間距 可以使用 grid-column-gap 和 grid-row-gap 屬性來建立,或者直接使用兩個合併的縮寫形式 grid-gap。
一個網格元素能夠也成爲一個網格容器。