CSS ตารางแบบ Responsive โดยไม่มีช่องว่าง
มาสร้างตารางที่จะมีจำนวนบล็อกในแต่ละแถวแตกต่างกันไป ขึ้นอยู่กับความกว้างของหน้าจอกัน นี่คือตัวอย่างของผลลัพธ์ ที่เราควรจะได้:
มาเขียนโค้ด HTML ก่อน:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
<div class="child">5</div>
<div class="child">6</div>
<div class="child">7</div>
<div class="child">8</div>
<div class="child">9</div>
<div class="child">10</div>
<div class="child">11</div>
<div class="child">12</div>
</div>
ตอนนี้มาเพิ่มสไตล์ให้กับ parent ของบล็อก:
.parent {
display: flex;
flex-wrap: wrap;
width: 95%;
margin: 50px auto;
}
ตอนนี้มากำหนดสไตล์ให้กับบล็อกเอง โดยยังไม่กำหนด ความกว้างให้พวกมัน:
.child {
box-sizing: border-box;
height: 100px;
padding: 20px;
border: 1px solid green;
}
เห็นได้ชัดว่าความกว้างของบล็อกควรเป็นเปอร์เซ็นต์ เพื่อที่บล็อกจะได้ปรับความกว้างอย่างลื่นไหลเมื่อหน้าจอเปลี่ยน ในขณะเดียวกัน ที่หน้าจอขนาดบางจุด เราควรเปลี่ยนความกว้างของบล็อก เพื่อให้แต่ละแถวสามารถบรรจุจำนวนบล็อกที่กำหนดได้
มาเขียนโค้ดที่จะวางบล็อกสี่บล็อกในหนึ่งแถว:
@media (min-width: 1000px) {
.child {
width: 25%;
}
}
และตอนนี้วางบล็อกสามบล็อกในหนึ่งแถว:
@media (min-width: 700px) and (max-width: 1000px) {
.child {
width: 33.3333%;
}
}
และตอนนี้วางบล็อกสองบล็อกในหนึ่งแถว:
@media (min-width: 400px) and (max-width: 700px) {
.child {
width: 50%;
}
}
หนึ่งบล็อกในหนึ่งแถว:
@media (max-width: 400px) {
.child {
width: 100%;
}
}
มารวบรวมโค้ดทั้งหมดเข้าด้วยกัน:
.parent {
display: flex;
flex-wrap: wrap;
width: 95%;
margin: 50px auto;
}
.child {
box-sizing: border-box;
height: 100px;
padding: 20px;
border: 1px solid green;
}
@media (max-width: 400px) {
.child {
width: 100%;
}
}
@media (min-width: 400px) and (max-width: 700px) {
.child {
width: 50%;
}
}
@media (min-width: 700px) and (max-width: 1000px) {
.child {
width: 33.3333%;
}
}
@media (min-width: 1000px) {
.child {
width: 25%;
}
}
ปรับเปลี่ยนโค้ดของฉันเพื่อให้ความกว้างของบล็อก
คำนวณผ่านฟังก์ชัน calc
สร้างตารางที่เมื่อลดขนาดหน้าจอลง จะเริ่มจากสี่องค์ประกอบในหนึ่งแถว จากนั้น สององค์ประกอบในหนึ่งแถว แล้วจึงหนึ่ง องค์ประกอบในหนึ่งแถว
สร้างตารางที่เมื่อลดขนาดหน้าจอลง จะเริ่มจากหกองค์ประกอบในหนึ่งแถว จากนั้น สามองค์ประกอบในหนึ่งแถว แล้วจึงหนึ่ง องค์ประกอบในหนึ่งแถว