Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> CSS

การตั้งค่า Grid Template Property ใน CSS

คุณสมบัติ 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 ซับซ้อน