FlexBox یک ظرف است که آیتمها را در یک جهت واحد چیدمان میکند. میتواند تغییر اندازه دهد، بپیچد، تراز کند و فضا را بین آیتمها توزیع کند تا فضای موجود به طور بهینه پر شود. این یک طرحبندی مفید برای آیتمهای با اندازههای مختلف و برای تغییر اندازه آیتمها هنگام تغییر فضای موجود است.
با FlexBox میتوانید:
- نحوه بزرگ و کوچک شدن آیتمها را برای پر کردن فضای موجود کنترل کنید
- وقتی فضای کافی برای موارد وجود ندارد، آنها را در ردیفها یا ستونهای جدید قرار دهید
- با استفاده از تنظیمات از پیش تعیینشدهی مناسب، فضای اضافی را بین موارد توزیع کنید
چه زمانی از FlexBox استفاده کنیم
FlexBox معمولاً برای نمایش تعداد کمی از آیتمها در یک طرح کلی صفحه نمایش استفاده میشود. برای یک طرح کلی صفحه نمایش، Grid معمولاً انتخاب بهتری است. FlexBox از بارگذاری تنبل آیتمها پشتیبانی نمیکند. برای نمایش تعداد زیادی از آیتمها، از لیستها و گریدهای تنبل استفاده کنید. اگر نیاز به قرار دادن آیتمها دارید، به جای FlowRow و FlowColumn از FlexBox استفاده کنید.
اصطلاحات و مفاهیم
FlexBox آیتمهای خود را به صورت افقی یا عمودی نمایش میدهد. این جهت این خطوط، محور اصلی را مشخص میکند. ۹۰ درجه نسبت به محور اصلی ، محور متقاطع است. طول FlexBox در امتداد محور اصلی به عنوان اندازه اصلی شناخته میشود. طول محور متقاطع مربوطه به عنوان اندازه متقاطع شناخته میشود. این اندازهها و محورها اساس رفتار FlexBox را تشکیل میدهند.

FlexBox Row است. 
FlexBox Column است. اعمال ویژگیها
شما میتوانید ویژگیهای FlexBox را به دو روش اعمال کنید:
- به کانتینر
FlexBoxبا استفاده ازFlexBox(config) - به یک آیتم درون
FlexBoxبا استفاده ازModifier.flex
ویژگیهای کانتینر ( | ویژگیهای آیتم ( |
|---|---|
برای اطلاعات بیشتر در مورد این ویژگیها ، به تنظیم رفتار کانتینر مراجعه کنید. |
برای اطلاعات بیشتر در مورد این ویژگیها، به بخش تنظیم رفتار آیتم مراجعه کنید. |
الگوریتم چیدمان FlexBox را درک کنید
یکی از قدرتمندترین ویژگیهای FlexBox ، توانایی آن در تغییر اندازهی فرزندانش برای تطبیق با فضای موجود است. درک چگونگی انجام این کار FlexBox میتواند به شما در تنظیم ویژگیهای FlexBox برای بهینهسازی رابط کاربری برای تمام اندازههای ممکن کمک کند.
الگوریتم چیدمان FlexBox به روش زیر عمل میکند:
محاسبه اندازه پایه فرزند : از مقدار
basisفرزند برای محاسبه اندازه اولیه آن در امتداد محور اصلی قبل از توزیع هرگونه فضای اضافی استفاده کنید.مرتبسازی فرزندان : فرزندان را بر اساس مقادیر
order، در صورت وجود، مرتب کنید.ساخت خطوط : برای هر فرزند، بررسی کنید که آیا اندازه اولیه آن به علاوه
gapدر فضای باقی مانده در خط فعلی جا میشود یا خیر. اگر چنین است، این فرزند را در خط قرار دهید. در غیر این صورت، اگر قابلیت wrapping فعال است ، آن را در یک خط جدید قرار دهید، یا آیتم را در خط فعلی قرار دهید که سرریز شود (تا حدی توسط لبه ظرف پنهان میشود).ترازبندی یا تغییر اندازه موارد در محور اصلی : برای هر خط، با تغییر اندازه یا ترازبندی آنها، فضای اضافی را بین موارد یا بین آنها توزیع کنید.
ترازبندی یا تغییر اندازه آیتمها در محور عرضی : برای هر خط، با کشیدن یا ترازبندی آیتمها و خطوط، فضای اضافی را بین آنها توزیع کنید.
حالا که با مفاهیم FlexBox آشنا شدید، برای ایجاد یک FlexBox ساده به بخش «شروع به کار» مراجعه کنید.