Flex تفاوت اصلی بوت استرپ 3 و 4
شما می توانید برای کنترل محیط و طرح کلی صفحات وب خود از کلاس های Flex در بوت استرپ 4 استفاده کنید. شاید بتوان گفت مهم ترین تفاوت بوت استرپ 3 و بوت استرپ 4 این است که بوت استرپ 4 به جای float ها از مدل flexbox استفاده می کند، چرا که مدل flexbox در طراحی های زیبا و واکنش گرا بسیار بهتر و ساده تر از Float می باشد. ما مدل flexbox را در دوره ی آموزش CSS پیشرفته بررسی کرده ایم، برای اطلاعات بیشتر به آن سری بزنید.
برای ایجاد نگهدارنده ی Flex و تبدیل فرزندان مستقیم آن به آیتم های flex از کلاس d-flex
استفاده کنید. مثال:
اگر می خواهید این نگهدارنده را inline کنید می توانید از کلاس d-inline-flex
استفاده کنید:
با بررسی این مثال و مثال قبلی متوجه می شوید که عنصر نگهدارنده دیگر تمام عرض را اشغال نکرده بلکه تنها دور عناصر داخل خودش را گرفته است.
نمایش افقی
برای نمایش آیتم های flex به صورت افقی (یعنی کنار هم) از کلاس flex-row.
استفاده می کنیم که حالت پیش فرض نیز می باشد. البته اگر با ترتیب این آیتم ها مشکل داشتید می توانید با کلاس flex-row-reverse.
ترتیبشان را برعکس کنید (آن ها را به سمت راست ببرید):
نمایش عمودی
برخی اوقات به دلیل زیبایی یا نیاز طرح خود باید عناصر را روی هم قرار دهیم؛ در چنین مواقعی می توان از کلاس flex-column-reverse.
استفاده کرد:
مشخصا کلاس flex-column-reverse.
نیز مانند مورد قبلی قابل استفاده است.
تراز بندی (justify) محتوا
کلاس های خانواده ی *-justify-content.
می توانند ترازبندی آیتم های Flex در بوت استرپ را تغییر دهند. برای کار با این کلاس ها باید یکی از مقادیر زیر را به جای علامت ستاره قرار دهید:
- start (به معنی «ابتدا»)
- end (به معنی «انتها»)
- center (به معنی «وسط»)
- between (به معنی «میان» یا «بین»)
- around (به معنی شروع «اطراف»)
با مشاهده ی خروجی مثال زیر به راحتی متوجه معنی این کلاس ها خواهید شد.
عرض برابر
اگر می خواهید عرض آیتم های flex با یکدیگر برابر باشد کلاس flex-fill.
به درد شما می خورد:
دستور grow
کلاس flex-grow-1.
به هر عنصری اضافه شود، به آن می گوید که بقیه ی فضا را اشغال کند. در مثال زیر دو آیتم اول تنها به اندازه ی خودشان فضا را اشغال کرده اند اما آیتم سوم که دستور flex-grow-1 را دارد تمام عرض موجود را گرفته است:
نکته: کلاس flex-shrink-1.
دقیقا بر خلاف کلاس flex-grow-1.
است و آیتم را در صورت نیاز کوچک تر می کند.
تغییر ترتیب آیتم ها
اگر می خواهید ترتیب ظاهری عناصر داخل نگهدارنده را تغییر دهید باید از کلاس های خانواده ی order. استفاده کنید. این کلاس ها از 0 تا 12 هستند به طوری که کمترین عدد بیشترین اولویت را دارد (یعنی order-1 قبل از order-2 نمایش داده می شود و …). به مثال زیر توجه کنید:
تنظیم خودکار margin
شما می توانید با کلاس mr-auto. به سمت راست عنصر margin auto اضافه کنید (حرکت عنصر به سمت راست) و با کلاس ml-auto. دقیقا برعکس این کار را (یعنی اضافه کردن margin به سمت چپ) انجام دهید. مثال:
قابلیت wrap
ما می توانیم با استفاده از کلاس های flex-nowrap.
(حالت پیش فرض)، flex-wrap.
و flex-wrap-reverse.
نحوه ی wrap شدن آیتم های flex را در نگهدارنده کنترل کنیم. wrap شدن یعنی اگر آیتم ها از عرض صفحه بزرگتر بودند بشکنند و به خط بعدی بروند. بنابراین در صورتی که nowrap را قرار دهید آیتم ها فقط و فقط در یک خط قرار گرفته تا جایی که از صفحه خارج می شوند!
تفاوت این سه کلاس را در مثال زیر می بینید:
تراز عمودی آیتم های جمعی
می توانید با استفاده از کلاس های خانواده ی *-align-content.
آیتم های flex جمعی را تراز کنید. توجه داشته باشید که این کلاس ها هیچ تاثیری بر روی تک ردیف های flex ندارند بلکه باید گروهی از آیتم ها جمع شده باشند. این کلاس ها عبارت اند از:
align-content-start.
(حالت پیش فرض)align-content-end.
align-content-center.
align-content-between.
align-content-around.
align-content-stretch.
نام این کلاس ها واضح است و خودشان در مورد کارشان توضیح می دهند بنابراین نیازی به توضیح اضافه نیست. به مثال زیر توجه کنید:
تراز عمودی تک ردیف ها
اگر تنها یک ردیف از آیتم های flex را دارید می توانید با کلاس های خانواده ی *-align-items.
آن ها را ترازبندی کنید. این کلاس ها عبارت اند از:
align-items-start.
align-items-end.
align-items-center.
align-items-baseline.
align-items-stretch.
(حالت پیش فرض)
تفاوت این کلاس ها را در مثال زیر مشاهده می کنید:
تراز عمودی آیتم ها به صورت جداگانه
اگر می خواهید تنها یک آیتم را ترازبندی کنید باید از کلاس های خانواده ی *-align-self.
استفاده کنید. این کلاس ها عبارت اند از:
align-self-start.
align-self-end.
align-self-center.
align-self-baseline.
align-self-stretch.
(حالت پیش فرض)
تفاوت این کلاس ها را در مثال زیر مشاهده می کنید:
کلاس های واکنش گرا
تمام کلاس هایی که تا الان به شما توضیح دادیم، نسخه ی واکنشگرایی نیز دارند. ما از هر خانواده یک مثال می زنیم و بقیه ی دستورها برای شما مشخص می شوند:
کلاس خانواده | مثال |
Flex Container (گروه اول – ایجاد نگهدارنده) |
|
Direction (گروه دوم – نمایش افقی و عمودی عناصر) |
|
Justified Content (گروه سوم – ترازبندی افقی آیتم ها) |
|
Equal Width (گروه چهارم – هم عرض شدن آیتم ها) | .flex-*-fill |
Grow (گروه پنجم – اشغال فضای باقی مانده) | .flex-*-grow-0
|
Shrink (گروه ششم – کوچک کردن آیتم ها) | .flex-*-shrink-0
|
Order (گروه هفتم – تعیین ترتیب آیتم ها) | .order-*-0-12 |
Wrap (گروه هشتم – wrap کردن آیتم ها) |
|
Align Content (گروه نهم – ترازبندی عمودی آیتم های گروهی) |
|
Align Items (گروه دهم – ترازبندی عمودی تک ردیف ها) | .align-items-*-start
|
Align Self (گروه یازدهم – ترازبندی عمودی تک آیتم ها) | .align-self-*-start
|
شما می توانید برای مشاهده ی مثال های بیشتر و کسب اطلاعات بیشتر به صفحه ی رسمی سایت بوت استرپ مراجعه کنید.