display: grid
將元素設置為網格容器。grid-template-columns
和 grid-template-rows
:設置網格的列和行。
px
, fr
(fraction, 分數單位), auto
, %
。grid-template-columns: 1fr 2fr;
(第一列占據 1 份空間,第二列占據 2 份空間)。grid-template-areas
:通過命名區域來簡化網格項目的佈局。
grid-template-areas:
"header header header"
"sidebar content content"
"footer footer footer";
grid-column
和 grid-row
:控制網格項目橫跨的行或列。
grid-column: 1 / 3;
(項目橫跨第 1 列到第 3 列)。grid-area
:將網格項目放置在特定的命名區域中,與 grid-template-areas
搭配使用。
grid-area: header;
將項目放置在 header
區域。grid-gap
、column-gap
、row-gap
:設置網格項目之間的間距。
grid-gap: 10px;
設置行和列之間的間距為 10px。display: grid
:定義元素為網格容器。grid-template-columns
:定義列的數量及寬度。grid-template-rows
:定義行的數量及高度。grid-template-areas
:為網格項目定義命名區域。justify-items
:設置網格項目在水平方向的對齊方式。align-items
:設置網格項目在垂直方向的對齊方式。grid-column-start
、grid-column-end
:控制網格項目從哪一列開始,到哪一列結束。grid-row-start
、grid-row-end
:控制網格項目從哪一行開始,到哪一行結束。grid-area
:指定網格項目放置在哪一個區域。HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Grid Layout Example</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<div class="header">Header</div>
<div class="sidebar">Sidebar</div>
<div class="content">Content</div>
<div class="footer">Footer</div>
</div>
</body>
</html>
CSS:
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: auto 200px auto;
grid-template-areas:
"header header header"
"sidebar content content"
"footer footer footer";
grid-gap: 10px;
}
.header {
grid-area: header;
background-color: lightblue;
text-align: center;
padding: 20px;
}
.sidebar {
grid-area: sidebar;
background-color: lightgreen;
padding: 20px;
}
.content {
grid-area: content;
background-color: lightcoral;
padding: 20px;
}
.footer {
grid-area: footer;
background-color: lightgray;
text-align: center;
padding: 20px;
}
網頁呈下圖: