align-content: space-around คืออะไร?
คุณสมบัติ align-content ควบคุมการจัดเรียงบน Cross Axis (แกนตั้งฉากกับ main axis) เมื่อมีหลายบรรทัด (multi-line flex container) ค่า space-around จะกระจายพื้นที่ว่าง รอบๆ แต่ละบรรทัด flex line อย่างเท่าเทียม
เงื่อนไขการทำงาน
- ต้องมี
display: flexหรือinline-flex - ต้องมี
flex-wrap: wrap(หรือ wrap-reverse) - ต้องมีความสูงของคอนเทนเนอร์มากกว่าความสูงรวมของ items
ตัวอย่างการใช้งาน
<!DOCTYPE html>
<html>
<head>
<style>
.mycontainer {
display: flex;
height: 300px; /* สูงกว่าความสูงรวมของ items */
background-color: #f0f0f0;
align-content: space-around; /* กระจายพื้นที่รอบบรรทัด */
flex-wrap: wrap; /* สำคัญ: ต้อง wrap */
}
.mycontainer > div {
background-color: #4CAF50;
color: white;
text-align: center;
line-height: 60px;
font-size: 24px;
width: 100px;
margin: 5px;
border-radius: 4px;
}
</style>
</head>
<body>
<h1>ตัวอย่าง align-content: space-around</h1>
<div class="mycontainer">
<div>Q1</div>
<div>Q2</div>
<div>Q3</div>
<div>Q4</div>
<div>Q5</div>
<div>Q6</div>
<div>Q7</div>
<div>Q8</div>
</div>
</body>
</html>
การกระจายพื้นที่ (Visual Explanation)
┌─────────────────────────────────┐ │ พื้นที่ว่าง │ ← space-around: ครึ่งหน่วยด้านบน ├──────────┬──────────┬──────────┤ │ Q1 │ Q2 │ Q3 │ ← บรรทัดที่ 1 ├──────────┼──────────┼──────────┤ │ Q4 │ Q5 │ Q6 │ ← บรรทัดที่ 2 ├──────────┼──────────┼──────────┤ │ Q7 │ Q8 │ │ ← บรรทัดที่ 3 ├──────────┴──────────┴──────────┤ │ พื้นที่ว่าง │ ← space-around: ครึ่งหน่วยด้านล่าง └─────────────────────────────────┘ พื้นที่ระหว่างบรรทัด = 1 หน่วยเต็ม พื้นที่ขอบบน/ล่าง = 0.5 หน่วย
เปรียบเทียบค่า align-content
| ค่า | พฤติกรรม |
|---|---|
| flex-start | ชิดด้านบน (เริ่มต้น) |
| flex-end | ชิดด้านล่าง |
| center | กึ่งกลางแนวตั้ง |
| space-between | บรรทัดแรกชิดบน บรรทัดสุดท้ายชิดล่าง กระจายกลางเท่าๆ กัน |
| space-around | พื้นที่รอบบรรทัดเท่าๆ กัน (ขอบบน/ล่าง = ครึ่งหน่วย) |
| space-evenly | พื้นที่ทุกช่องว่างเท่าๆ กันหมด (รวมขอบ) |
| stretch | ยืดบรรทัดเต็มความสูง (ค่าเริ่มต้น) |
คำแนะนำ
- ใช้
space-aroundเมื่อต้องการ "ห้องว่าง" รอบๆ เนื้อหา - จดจำ:
space-between= ไม่มีพื้นที่ขอบ,space-around= มีพื้นที่ขอบครึ่งหน่วย - ถ้ามีบรรทัดเดียว
align-contentจะไม่มีผล ให้ใช้align-itemsแทน