آیتمهای Flex در CSS
درس Flex Container پدر را هدایت کرد. آیتمهای flex سؤال دیگری میپرسند: هر فرزند داخل آن ردیف یا ستون چطور رشد کند، جمع شود و اندازهٔ شروع بگیرد؟ قبل از الگوهای واکنشگرای flex، basis و grow و shrink را مسلط شوید.
جعبهٔ ابزار آیتمهای flex
📊 آیتمهای flex یکنگاهه
| ویژگی | کار روزمره |
|---|---|
flex-basis |
اندازهٔ اصلی شروع قبل از پخش فضای آزاد |
flex-grow |
چقدر از فضای باقیمانده این آیتم برمیدارد (ضریب بدون واحد) |
flex-shrink |
چقدر حاضر است وقتی جا تنگ است جمع شود |
flex |
خلاصه برای grow و shrink و basis |
align-self |
align-items کانتینر را برای یک آیتم لغو میکند |
order |
ترتیب دیداری را عوض میکند (کم استفاده کنید — DOM و دسترسیپذیری را سالم نگه دارید) |
basis را طول شروع ترجیحی آیتم روی محور اصلی بدانید. بعد grow و shrink روی فضای آزاد یا کمبود مانده مذاکره میکنند.
flex-grow — فضای باقی را بردار
ضریب 1 اجازه میدهد آیتم در فضای آزاد بزرگ شود. ضریب خواهرها رقابت میکنند: دو آیتم با flex-grow: 1 باقی را نصف میکنند.
.layout {
display: flex;
gap: 1rem;
}
.layout__main {
flex-grow: 1;
}
.layout__aside {
flex-grow: 0;
width: 14rem;
}
flex-basis — از یک اندازه شروع کن
flex-basis اندازهٔ اصلی شروع را قبل از حساب grow/shrink میگذارد. برای الگوریتم flex، basis را ترجیح دهید؛ width/height هنوز مهماند، ولی نقطهٔ شروع بومی flex همان basis است.
.layout__aside {
flex-basis: 14rem;
flex-grow: 0;
flex-shrink: 0;
}
flex-shrink — فضا را برگردان
وقتی ردیف تنگ است، ضریب shrink مشخص میکند چه کسی فشرده شود. flex-shrink: 0 آیکن یا ریل ثابت را از له شدن حفظ میکند.
.icon-rail {
flex-shrink: 0;
flex-basis: 3rem;
}
خلاصهٔ flex
flex: grow shrink basis این سه را جمع میکند. پیشفرض آرام رایج: flex: 1 برای فرزند پرکننده؛ flex: 0 0 auto برای چیپ سفت.
.card__body {
flex: 1 1 auto;
}
.card__badge {
flex: 0 0 auto;
}
align-self — یک آیتم، تراز متقاطع جدا
align-items کانتینر را برای یک فرزند لغو کنید. وقتی یک نشان باید به شروع بچسبد و خواهرها وسط بمانند مفید است.
.row {
display: flex;
align-items: center;
gap: 0.75rem;
}
.row .note {
align-self: flex-start;
}
عادت آرام آیتم flex
اول basis برای اندازهٔ عمدی، بعد ضریب grow/shrink، بعد خلاصه برای مرتبکردن. align-self را کم به کار ببرید. از ترفند order که جریان صفحهکلید و صفحهخوان را به هم میزند دوری کنید — الگوهای media-query را برای Flex Responsive بگذارید.
.cluster__main {
flex: 1 1 auto;
}
.cluster__meta {
flex: 0 0 auto;
align-self: center;
}
خودتان امتحان کنید
- ردیف main + aside بسازید؛ به main مقدار
flex-grow: 1بدهید. - aside را با
flex-basis: 14remوflex-shrink: 0تنظیم کنید. - یک آیکن را با
flex-shrink: 0محافظت کنید. - grow/shrink/basis را با خلاصهٔ
flexبازنویسی کنید. - تراز متقاطع یک فرزند را با
align-selfلغو کنید.
اشتباههای رایج
- گذاشتن
flex-growروی کانتینر بهجای آیتم - قاطی کردن
widthباflex-basisو تعجب از اختلاف حساب flex - جابهجایی با
orderو خراب کردن ترتیب tab/منبع - له شدن لوگو چون shrink روی پیشفرض ماند
- دیدن این درس مثل ماژول Flex Responsive
جمعبندی
- آیتمهای flex رشد، جمعشدن و basis شروع را کنترل میکنند
flex-growفضای آزاد را تقسیم میکند؛flex-shrinkفشار تنگی راflex-basisاندازهٔ شروع flex روی محور اصلی است- خلاصهٔ
flexوalign-selfفرزندان را ریز میکنند - الگوی واکنشگرای flex بعدی است؛
orderرا با احتیاط به کار ببرید
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود