فلکسباکس چیست؟
Flexbox (Flexible Box) سیستم چیدمان یکبعدی CSS است که برای ترازبندی، توزیع فضا و مرتبسازی عناصر طراحی شده.
چرا فلکسباکس؟
| قبل از فلکسباکس | با فلکسباکس |
| وسطچین عمودی سخت بود | align-items: center |
| ارتفاع مساوی ستونها سخت | align-items: stretch |
| توزیع فضا سخت | justify-content: space-between |
| ترتیب تغییر سخت | order |
مدل فلکس
.container {
display: flex;
/* فرزندان حالا flex item هستند */
}
محور اصلی و متقاطع
| محور | توضیح | ویژگی کنترل |
| محور اصلی (Main Axis) | جهت چیدمان | justify-content |
| محور متقاطع (Cross Axis) | عمود بر محور اصلی | align-items |
flex-direction
| مقدار | توضیح |
row | افقی (پیشفرض) |
row-reverse | افقی معکوس |
column | عمودی |
column-reverse | عمودی معکوس |
justify-content
| مقدار | توضیح |
flex-start | شروع محور |
flex-end | انتهای محور |
center | مرکز |
space-between | فاصله مساوی، لبهها چسبیده |
space-around | فاصله مساوی، لبهها نصف |
space-evenly | فاصله کاملاً مساوی ⭐ |
align-items
| مقدار | tوضیح |
stretch | کشیده شدن (پیشفرض) |
flex-start | شروع محور متقاطع | |
flex-end | انتهای محور متقاطع |
center | مرکز |
baseline | خط پایه |
gap
.container {
display: flex;
gap: 20px; /* فاصله بین آیتمها */
}
flex-wrap
.container {
display: flex;
flex-wrap: wrap; /* رفتن به خط بعد */
}
بهترین شیوهها
- فلکسباکس برای چیدمان یکبعدی عالی است
- برای چیدمان دوبعدی از Grid استفاده کنید
gap بهترین راه برای فاصلهدهی
- Mobile-First با فلکسباکس بسیار آسان
نکات مهم
- فلکسباکس محور اصلی و متقاطع دارد
flex-direction محور را تعیین میکند
gap جایگزین مدرن margin است
- عنصر inline به
display: flex تبدیل میشود