คุณสมบัติ grid-template เป็น shorthand ของ grid-template-rows, grid-template-columns, และ grid-template-areas ใช้กำหนด grid tracks และ areas พร้อมกัน
รูปแบบไวยากรณ์
grid-template: none | <grid-template-rows> / <grid-template-columns> | <grid-template-areas> | initial | inherit;
ตัวอย่างโค้ด
<!DOCTYPE html>
<html>
<head>
<style>
.grid-container {
display: grid;
grid-template: 100px / auto auto auto; /* rows: 100px, cols: 3 คอลัมน์ auto */
grid-gap: 5px;
background-color: blue;
padding: 5px;
}
.grid-container > div {
background-color: orange;
text-align: center;
padding: 5px 0;
font-size: 30px;
}
</style>
</head>
<body>
<h1>Heading One</h1>
<p>Set some random numbers</p>
<div class="grid-container">
<div class="item1">250</div>
<div class="item2">120</div>
<div class="item3">333</div>
<div class="item4">298</div>
<div class="item5">645</div>
<div class="item6">543</div>
<div class="item7">555</div>
<div class="item8">723</div>
<div class="item9">811</div>
</div>
</body>
</html>
คำอธิบาย: grid-template: 100px / auto auto auto หมายถึง:
- Rows: 1 track ความสูง 100px (
grid-template-rows: 100px) - Columns: 3 tracks ความกว้าง auto (
grid-template-columns: auto auto auto) - ไม่มี areas (ใช้ auto-placement)
มี 9 items จะวางเป็น 3 แถว x 3 คอลัมน์ แถวแรกสูง 100px แถวถัดไปเป็น implicit rows (auto height)
รูปแบบอื่นๆ ของ grid-template
/ แบบกำหนด areas พร้อม rows/cols / grid-template: "header header header" 100px "sidebar main main" 1fr "footer footer footer" 50px / 200px 1fr 1fr; /* rows / cols */ /* แบบ areas only (rows/cols implicit) */ grid-template-areas: "header header header" "sidebar main main" "footer footer footer";
ข้อดีของ shorthand: เขียนโค้ดสั้นกว่า แต่อาจอ่านยากกว่า การแยก grid-template-rows, grid-template-columns, grid-template-areas อาจชัดเจนกว่าสำหรับ layout ซับซ้อน