CSS 的 Grid 是很有趣的東西,延續之前的基本設定,這篇來講一下 grid-row 與 grid-column。
首先準備一下 html 如下:
<div class="wrapper">
<div class="one">One</div>
<div class="two">Two</div>
<div class="three">Three</div>
<div class="four">Four</div>
<div class="five">Five</div>
<div class="six">Six</div>
</div>
接著設定好 display: gird,然後我再把版面切成 3 個欄位:
.wrapper{
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
本來切完後可以利用 grir-area 去分配空間,這邊我們來講一下 grid-row 與 grid-column 該如何應用,當我們把 grid layout 分割完後,可以用一張圖表示,因為我們把版面分成三欄,所以可以看成用四條線分割,各自給一個編號 1~4,而列(row)因為沒有指定數目,所以會依據我們給定的區塊延伸,這邊一樣用編號去代表一直長下去的列數。

接著設定 .one 的 grid-row 與 grid-column,我把他設定成這樣:
.one {
grid-column: 1 / 3;
grid-row: 1;
}
這個意思就是我在分割的 grid 裡,grid-column 設定本區快要佔 column (也就是藍色線條)的第 1 條到第 3 條的空間,也就是兩格,而 grid-row 則是佔了 row(紅色線)第 1 條往下一格的空間,這個寫法可以等同於 1 / 2。
在用第二個區塊來看另一個區塊的設定,我寫成:
.two {
grid-column: 2 / 4;
grid-row: 1 / 3;
}
這代表這個區塊佔了 column 的第 2 到第 4 條線之間,row 的第 1 條到第 3 條之間,可以看到就算原本的列數沒有到那麼多,還是可以拉到那個區塊的位置。
多寫幾個區塊:
.three {
grid-row: 2 / 5;
grid-column: 1;
}
.four {
grid-column: 3;
grid-row: 3;
}
.five {
grid-column: 2;
grid-row: 4;
}
.six {
grid-column: 3;
grid-row: 4;
}
可以看到以下的結果,可以去對應一下設定的所佔的空間。
參考:
CSS格線佈局