CSS ตารางแบบ Responsive โดยไม่มีช่องว่าง

มาสร้างตารางที่จะมีจำนวนบล็อกในแต่ละแถวแตกต่างกันไป ขึ้นอยู่กับความกว้างของหน้าจอกัน นี่คือตัวอย่างของผลลัพธ์ ที่เราควรจะได้:

มาเขียนโค้ด HTML ก่อน:

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 ของบล็อก:

css.parent {
  display: flex;
  flex-wrap: wrap;
  width: 95%;
  margin: 50px auto;
}

ตอนนี้มากำหนดสไตล์ให้กับบล็อกเอง โดยยังไม่กำหนด ความกว้างให้พวกมัน:

css.child {
  box-sizing: border-box;
  height: 100px;
  padding: 20px;
  border: 1px solid green;
}

เห็นได้ชัดว่าความกว้างของบล็อกควรเป็นเปอร์เซ็นต์ เพื่อที่บล็อกจะได้ปรับความกว้างอย่างลื่นไหลเมื่อหน้าจอเปลี่ยน ในขณะเดียวกัน ที่หน้าจอขนาดบางจุด เราควรเปลี่ยนความกว้างของบล็อก เพื่อให้แต่ละแถวสามารถบรรจุจำนวนบล็อกที่กำหนดได้

มาเขียนโค้ดที่จะวางบล็อกสี่บล็อกในหนึ่งแถว:

css@media (min-width: 1000px) {
  .child {
    width: 25%;
  }
}

และตอนนี้วางบล็อกสามบล็อกในหนึ่งแถว:

css@media (min-width: 700px) and (max-width: 1000px) {
  .child {
    width: 33.3333%;
  }
}

และตอนนี้วางบล็อกสองบล็อกในหนึ่งแถว:

css@media (min-width: 400px) and (max-width: 700px) {
  .child {
    width: 50%;
  }
}

หนึ่งบล็อกในหนึ่งแถว:

css@media (max-width: 400px) {
  .child {
    width: 100%;
  }
}

มารวบรวมโค้ดทั้งหมดเข้าด้วยกัน:

css.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%;
  }
}
Задание 1

ปรับเปลี่ยนโค้ดของฉันเพื่อให้ความกว้างของบล็อก คำนวณผ่านฟังก์ชัน calc

Задание 2

สร้างตารางที่เมื่อลดขนาดหน้าจอลง จะเริ่มจากสี่องค์ประกอบในหนึ่งแถว จากนั้น สององค์ประกอบในหนึ่งแถว แล้วจึงหนึ่ง องค์ประกอบในหนึ่งแถว

Задание 3

สร้างตารางที่เมื่อลดขนาดหน้าจอลง จะเริ่มจากหกองค์ประกอบในหนึ่งแถว จากนั้น สามองค์ประกอบในหนึ่งแถว แล้วจึงหนึ่ง องค์ประกอบในหนึ่งแถว