สำหรับตัวอย่างที่ 7 นี้ ให้รวมแนวคิดบางส่วนที่คุณได้เรียนรู้ไปแล้วเกี่ยวกับการสร้างเลย์เอาต์ที่ปรับเปลี่ยนตามอุปกรณ์โดยให้มีองค์ประกอบย่อยที่จัดวางโดยอัตโนมัติและยืดหยุ่น เจ๋งมาก คำสำคัญที่ควรจำคือ repeat
, auto-(fit|fill)
และ minmax()
ซึ่งจำได้จากตัวย่อ RAM
เมื่อรวมกันแล้วจะมีลักษณะดังต่อไปนี้
.parent {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
คุณกำลังใช้ repeat()
อีกครั้ง แต่ครั้งนี้ใช้คีย์เวิร์ด auto-fit
แทนค่าตัวเลขที่ชัดเจน การดำเนินการนี้จะเปิดใช้การจัดวางองค์ประกอบย่อยเหล่านี้โดยอัตโนมัติ เด็กเหล่านี้มีค่าต่ำสุดพื้นฐานที่ 150px
โดยมีค่าสูงสุดเป็น 1fr
ซึ่งหมายความว่าหน้าจอขนาดเล็กจะใช้ความกว้างเต็ม 1fr
และจะเริ่มเข้าสู่เส้นเดียวกันเมื่อมีความกว้าง 150px
สำหรับแต่ละรายการ
เมื่อใช้ auto-fit
แทร็กที่ไม่มีข้อมูลจะยุบเป็น 0
และแทร็กที่มีการเติมโฆษณาจะมีขนาดเต็มพื้นที่ แต่หากเปลี่ยนเป็น auto-fill
แทร็กเปล่าจะใช้พื้นที่เท่ากับขนาดที่ใช้เมื่อมีการเติมโฆษณา
.parent {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
HTML
<div class="parent white">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
CSS
.parent {
display: grid;
grid-gap: 1rem;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}