ساخت flex container
فرزندان مستقیم عنصر با display:flex به flex item تبدیل میشوند.
.toolbar { display: flex; align-items: center; gap: 0.75rem;}
تراز و توزیع منعطف عناصر در یک محور؛ از ردیف و ستون ساده تا wrap و کنترل اندازه آیتمها. Flexbox برای چیدمان یکبعدی اجزای رابط مناسب است. محور اصلی را flex-direction تعیین میکند و در جهت RTL، row از جهت نوشتار صفحه اثر میپذیرد. justify-content روی محور اصلی و align-items روی محور متقاطع عمل میکند. نام محور با flex-direction عوض میشود؛ مقادیر را با layout واقعی بسنجید. از این صفحه بهعنوان مرجع سریع استفاده کنید و مثالها و نکتهها را با نسخهٔ ابزار، نیاز و شرایط واقعی پروژهٔ خود تطبیق دهید.
فرزندان مستقیم عنصر با display:flex به flex item تبدیل میشوند.
.toolbar { display: flex; align-items: center; gap: 0.75rem;}row محور افقی و column محور عمودی میسازد؛ reverse را با جهت نوشتار و ترتیب DOM آزمایش کنید.
.row { display: flex; flex-direction: row; }.column { display: flex; flex-direction: column; }wrap اجازه میدهد آیتمها در فضای کم به خط بعد بروند.
.tag-list { display: flex; flex-wrap: wrap; gap: 0.5rem;}flex-flow جهت و wrap را در یک declaration ترکیب میکند.
.responsive-row { display: flex; flex-flow: row wrap;}برای فاصلهگذاری، gap اغلب از توزیع فضای خالی قابلپیشبینیتر است.
.navigation { display: flex; justify-content: space-between; align-items: center; gap: 1rem;}align-items روی همهٔ آیتمها اثر میگذارد و stretch مقدار پیشفرض متداول است.
.stack { display: flex; align-items: center; gap: 1rem;}align-self یک item را تغییر میدهد؛ align-content بین خطوط چندگانه فضا میدهد.
.item--top { align-self: flex-start; }.wrapped { display: flex; flex-wrap: wrap; align-content: space-between; min-height: 16rem;}auto margin میتواند یک بخش را به انتهای محور اصلی براند.
.toolbar { display: flex; align-items: center;}.toolbar__actions { margin-inline-start: auto; }ترتیب shorthand برابر grow، shrink و basis است.
.main { flex: 1 1 20rem; }.sidebar { flex: 0 0 16rem; }.fixed-action { flex: none; }grow سهم فضای اضافه و shrink سهم کاهش فضای کم را تعیین میکند.
.item { flex-grow: 1; flex-shrink: 1; }.item--fixed { flex-shrink: 0; }basis را بهعنوان اندازهٔ اولیهٔ محور اصلی در نظر بگیرید؛ auto معمولاً اندازهٔ محتوا یا width/height را میبیند.
.card { flex: 1 1 15rem; }.icon { flex: 0 0 2.5rem; }min-width:auto میتواند item را از والد بیرون ببرد؛ min-width:0 اجازهٔ کوچکشدن میدهد.
.flex-child { min-width: 0;}.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}gap فاصلهٔ بین آیتمها و خطوط را بدون marginهای پراکنده میسازد.
.actions { display: flex; flex-wrap: wrap; column-gap: 1rem; row-gap: 0.5rem;}wrap-reverse جهت قرارگیری خطوط را روی محور متقاطع برمیگرداند.
.items { display: flex; flex-wrap: wrap-reverse;}order فقط ترتیب دیداری را تغییر میدهد؛ focus و خواندن screen reader همچنان از ترتیب DOM پیروی میکند.
.visual-last { order: 2;}Flexbox معمولاً برای یک محور و اجزای یک ردیف مناسب است؛ برای ردیف و ستونهای همزمان، Grid را بررسی کنید.
Flexbox: row یا column، نوار ابزار، گروه کنترلهاGrid: شبکهٔ کارت، ردیف و ستون همزمانBoth: Grid برای صفحهبندی، Flexbox درون اجزابا display: flex یک flex container بسازید؛ فرزندان مستقیم آن flex item میشوند.
محور اصلی را با flex-direction: row یا column تعیین کنید و اثر آن را بر RTL بررسی کنید.
توزیع روی محور اصلی را با justify-content و تراز محور متقاطع را با align-items کنترل کنید.
برای فاصله یکنواخت میان آیتمها از gap استفاده کنید، نه marginهای پراکنده.
با flex-wrap: wrap اجازه دهید آیتمها در عرض محدود به خط بعد بروند.
رشد، جمعشدن و اندازه پایه را با flex: grow shrink basis آگاهانه تنظیم کنید.
با align-self تراز یک آیتم را تغییر دهید و با align-content خطوط چندگانه را مدیریت کنید.
برای محتوای متغیر از min-width: 0 استفاده کنید تا آیتم flex بیدلیل از container بیرون نزند.
برای نوار ابزار، گروه دکمه یا تراز محتوای یکبعدی Flexbox را انتخاب کنید؛ شبکه دوبعدی معمولاً برای Grid مناسبتر است.
ترتیب دیداری را با order تغییر ندهید مگر ترتیب DOM و دسترسی صفحهکلید همچنان قابلفهم بماند.
در Flexbox، flex: 1 را با نیاز به basis و حداقل اندازه بررسی کنید؛ shorthand میتواند flex-basis را نیز تغییر دهد.
در RTL، محور اصلی با row-reverse و ترتیب DOM را جداگانه بسنجید؛ از دوبار معکوسکردن ترتیب بپرهیزید.