gap และ flex-wrap

gap

เว้นช่องระหว่าง items โดยไม่ต้องใช้ margin ทีละใบ · รองรับทั้งแถวและคอลัมน์

.cards {
  display: flex;
  gap: 16px;        /* ช่องเดียวทั้งสองทิศถ้า wrap */
  gap: 12px 24px;    /* แถว | คอลัมน์ */
}

flex-wrap

nowrap (เริ่มต้น) บังคับแถวเดียว · wrap ให้ลงแถวใหม่เมื่อพื้นที่ไม่พอ

.cards {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
ชอบ gap มากกว่า margin ระหว่างพี่น้องใน flex — คำนวณช่องว่างสม่ำเสมอและตัดขอบนอกง่ายกว่า