grid-template-areas
屬性來命名網格區域,讓我們可以更直觀地排版網格中的內容。.container {
display: grid;
grid-template-areas:
"header header header"
"sidebar content content"
"footer footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.content { grid-area: content; }
.footer { grid-area: footer; }
grid-template-areas
提供更具可讀性的佈局方式,適合複雜的頁面結構設計。grid-template-columns
和 grid-template-rows
設定每一列和每一行的大小。.container {
display: grid;
grid-template-columns: 200px 1fr 1fr;
grid-template-rows: 100px auto 50px;
}
200px
表示固定寬度。1fr
表示可用空間的分配比例。repeat()
函數可以幫助簡化定義多個相似大小的列或行。.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
repeat(3, 1fr)
會自動生成 3 個等寬的網格單位,讓佈局更簡潔明了。
auto-fill
和 auto-fit
是用來自動填充格子內容的關鍵字,適合動態響應的佈局設計。.container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
auto-fill
會盡可能地填充列,當空間足夠時會繼續添加新的列。auto-fit
則會根據內容調整網格列的大小,適應現有的空間。minmax()
設定列或行的最小值與最大值,讓網格具備更好的彈性。.container {
display: grid;
grid-template-columns: repeat(3, minmax(100px, 1fr));
}
minmax()
讓每個網格的列至少有 100px
,並且最多可以佔據剩餘空間的 1fr
。
justify-content
: 水平對齊。align-content
: 垂直對齊。.container {
display: grid;
justify-content: center;
align-content: center;
}
當網格項目未完全佔據網格容器時,可以用這些屬性來控制它們在剩餘空間中的對齊方式。