Styling Track
CSS
Flexbox
gap
เรียนรู้การสร้างช่องว่างระหว่าง Flex Items ด้วย gap แทนการกระจาย margin ทีละ item
1. Core Idea
gap สร้างช่องว่างระหว่าง flex items จากฝั่ง container จึงไม่ต้องใส่ margin ให้ item แต่ละตัว และไม่เกิดช่องว่างเกินที่ขอบแถว
- gap: 12px หมายถึงช่องว่างทุกทิศระหว่าง items เป็น 12px
- gap: 8px 16px หมายถึง row-gap 8px และ column-gap 16px
- เมื่อใช้ flex-wrap, gap จะดูแลช่องว่างระหว่างแถวด้วย
2. Mental Model
margin เหมือนติดสติกเกอร์เว้นระยะไว้ที่ของแต่ละชิ้น ส่วน gap เหมือนตั้งเครื่องแบ่งระยะบนถาดกลาง ทำให้ระยะระหว่างของเท่ากันและไม่ติดเกินตรงขอบถาด
gap สร้างช่องว่างระหว่าง items โดยควบคุมจาก container
3. Rule / Definition
| รูปแบบ | ความหมาย | ใช้เมื่อ |
|---|---|---|
| gap: 12px | row-gap และ column-gap เท่ากัน | toolbar, button group |
| gap: 8px 16px | แนวตั้ง 8px แนวนอน 16px | wrapped tag list |
| row-gap / column-gap | กำหนดทีละแกน | ต้องการคุมแต่ละแกนแยกกัน |
4. Code Example
5. Recap
- gap กำหนดที่ flex container
- gap สร้างช่องว่างระหว่าง items ไม่ใช่รอบนอกของ container
- หลังเรียน flex-wrap แล้ว gap ช่วยจัดระยะทั้งระหว่างคอลัมน์และแถวได้