loading...
طراحی وب- برنامه نویسی
برنامه نویس بازدید : 34 دوشنبه 24 تیر 1398 نظرات (0)

Flex تفاوت اصلی بوت استرپ 3 و 4

شما می توانید برای کنترل محیط و طرح کلی صفحات وب خود از کلاس های Flex در بوت استرپ 4 استفاده کنید. شاید بتوان گفت مهم ترین تفاوت بوت استرپ 3 و بوت استرپ 4 این است که بوت استرپ 4 به جای float ها از مدل flexbox استفاده می کند، چرا که مدل flexbox در طراحی های زیبا و واکنش گرا بسیار بهتر و ساده تر از Float می باشد. ما مدل flexbox را در دوره ی آموزش CSS پیشرفته بررسی کرده ایم، برای اطلاعات بیشتر به آن سری بزنید.

برای ایجاد نگهدارنده ی Flex و تبدیل فرزندان مستقیم آن به آیتم های flex از کلاس d-flex استفاده کنید. مثال:

مشاهده ی خروجی در JSBin

اگر می خواهید این نگهدارنده را inline کنید می توانید از کلاس d-inline-flex استفاده کنید:

مشاهده ی خروجی در JSBin

با بررسی این مثال و مثال قبلی متوجه می شوید که عنصر نگهدارنده دیگر تمام عرض را اشغال نکرده بلکه تنها دور عناصر داخل خودش را گرفته است.

نمایش افقی

برای نمایش آیتم های flex به صورت افقی (یعنی کنار هم) از کلاس flex-row. استفاده می کنیم که حالت پیش فرض نیز می باشد. البته اگر با ترتیب این آیتم ها مشکل داشتید می توانید با کلاس flex-row-reverse. ترتیب‌شان را برعکس کنید (آن ها را به سمت راست ببرید):

مشاهده ی خروجی در JSBin

نمایش عمودی

برخی اوقات به دلیل زیبایی یا نیاز طرح خود باید عناصر را روی هم قرار دهیم؛ در چنین مواقعی می توان از کلاس flex-column-reverse. استفاده کرد:

مشاهده ی خروجی در JSBin

مشخصا کلاس flex-column-reverse. نیز مانند مورد قبلی قابل استفاده است.

تراز بندی (justify) محتوا

کلاس های خانواده ی *-justify-content. می توانند ترازبندی آیتم های Flex در بوت استرپ را تغییر دهند. برای کار با این کلاس ها باید یکی از مقادیر زیر را به جای علامت ستاره قرار دهید:

  • start (به معنی «ابتدا»)
  • end (به معنی «انتها»)
  • center (به معنی «وسط»)
  • between (به معنی «میان» یا «بین»)
  • around (به معنی شروع «اطراف»)

با مشاهده ی خروجی مثال زیر به راحتی متوجه معنی این کلاس ها خواهید شد.

مشاهده ی خروجی در JSBin

عرض برابر

اگر می خواهید عرض آیتم های flex با یکدیگر برابر باشد کلاس flex-fill. به درد شما می خورد:

مشاهده ی خروجی در JSBin

دستور grow

کلاس flex-grow-1. به هر عنصری اضافه شود، به آن می گوید که بقیه ی فضا را اشغال کند. در مثال زیر دو آیتم اول تنها به اندازه ی خودشان فضا را اشغال کرده اند اما آیتم سوم که دستور flex-grow-1 را دارد تمام عرض موجود را گرفته است:

مشاهده ی خروجی در JSBin

نکته: کلاس flex-shrink-1. دقیقا بر خلاف کلاس flex-grow-1. است و آیتم را در صورت نیاز کوچک تر می کند.

تغییر ترتیب آیتم ها

اگر می خواهید ترتیب ظاهری عناصر داخل نگهدارنده را تغییر دهید باید از کلاس های خانواده ی order. استفاده کنید. این کلاس ها از 0 تا 12 هستند به طوری که کمترین عدد بیشترین اولویت را دارد (یعنی order-1 قبل از order-2 نمایش داده می شود و …). به مثال زیر توجه کنید:

مشاهده ی خروجی در JSBin

تنظیم خودکار margin

شما می توانید با کلاس mr-auto. به سمت راست عنصر margin auto اضافه کنید (حرکت عنصر به سمت راست) و با کلاس ml-auto. دقیقا برعکس این کار را (یعنی اضافه کردن margin به سمت چپ) انجام دهید. مثال:

مشاهده ی خروجی در JSBin

قابلیت wrap

ما می توانیم با استفاده از کلاس های flex-nowrap. (حالت پیش فرض)، flex-wrap. و flex-wrap-reverse.نحوه ی wrap شدن آیتم های flex را در نگهدارنده کنترل کنیم. wrap شدن یعنی اگر آیتم ها از عرض صفحه بزرگتر بودند بشکنند و به خط بعدی بروند. بنابراین در صورتی که nowrap را قرار دهید آیتم ها فقط و فقط در یک خط قرار گرفته تا جایی که از صفحه خارج می شوند!

تفاوت این سه کلاس را در مثال زیر می بینید:

مشاهده ی خروجی در JSBin

تراز عمودی آیتم های جمعی

می توانید با استفاده از کلاس های خانواده ی *-align-content. آیتم های flex جمعی را تراز کنید. توجه داشته باشید که این کلاس ها هیچ تاثیری بر روی تک ردیف های flex ندارند بلکه باید گروهی از آیتم ها جمع شده باشند. این کلاس ها عبارت اند از:

  • align-content-start. (حالت پیش فرض)
  • align-content-end.
  • align-content-center.
  • align-content-between.
  • align-content-around.
  • align-content-stretch.

نام این کلاس ها واضح است و خودشان در مورد کارشان توضیح می دهند بنابراین نیازی به توضیح اضافه نیست. به مثال زیر توجه کنید:

مشاهده ی خروجی در JSBin

تراز عمودی تک ردیف ها

اگر تنها یک ردیف از آیتم های flex را دارید می توانید با کلاس های خانواده ی *-align-items. آن ها را ترازبندی کنید. این کلاس ها عبارت اند از:

  • align-items-start.
  • align-items-end.
  • align-items-center.
  • align-items-baseline.
  • align-items-stretch. (حالت پیش فرض)

تفاوت این کلاس ها را در مثال زیر مشاهده می کنید:

مشاهده ی خروجی در JSBin

تراز عمودی آیتم ها به صورت جداگانه

اگر می خواهید تنها یک آیتم را ترازبندی کنید باید از کلاس های خانواده ی *-align-self. استفاده کنید. این کلاس ها عبارت اند از:

  • align-self-start.
  • align-self-end.
  • align-self-center.
  • align-self-baseline.
  • align-self-stretch. (حالت پیش فرض)

تفاوت این کلاس ها را در مثال زیر مشاهده می کنید:

مشاهده ی خروجی در JSBin

کلاس های واکنش گرا

تمام کلاس هایی که تا الان به شما توضیح دادیم، نسخه ی واکنشگرایی نیز دارند. ما از هر خانواده یک مثال می زنیم و بقیه ی دستورها برای شما مشخص می شوند:

کلاس خانواده مثال
Flex Container (گروه اول – ایجاد نگهدارنده)

.d-*-inline-flex

.d-*-flex

Direction (گروه دوم – نمایش افقی و عمودی عناصر)

.flex-*-row

.flex-*-row-reverse

.flex-*-column

Justified Content (گروه سوم – ترازبندی افقی آیتم ها)

.justify-content-*-start

.justify-content-*-between

Equal Width (گروه چهارم – هم عرض شدن آیتم ها) .flex-*-fill
Grow (گروه پنجم – اشغال فضای باقی مانده) .flex-*-grow-0

 

.flex-*-grow-1

Shrink (گروه ششم – کوچک کردن آیتم ها) .flex-*-shrink-0

 

.flex-*-shrink-1

Order (گروه هفتم – تعیین ترتیب آیتم ها) .order-*-0-12
Wrap (گروه هشتم – wrap کردن آیتم ها)

.flex-*-wrap

.flex-*-nowrap

Align Content (گروه نهم – ترازبندی عمودی آیتم های گروهی)

.align-content-*-start

.align-content-*-around

Align Items (گروه دهم – ترازبندی عمودی تک ردیف ها) .align-items-*-start

 

.align-items-*-baseline

Align Self (گروه یازدهم – ترازبندی عمودی تک آیتم ها) .align-self-*-start

 

.align-self-*-stretch

شما می توانید برای مشاهده ی مثال های بیشتر و کسب اطلاعات بیشتر به صفحه ی رسمی سایت بوت استرپ مراجعه کنید.

منبع: روکسو
 
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 346
  • کل نظرات : 0
  • افراد آنلاین : 3
  • تعداد اعضا : 0
  • آی پی امروز : 21
  • آی پی دیروز : 17
  • بازدید امروز : 138
  • باردید دیروز : 21
  • گوگل امروز : 2
  • گوگل دیروز : 5
  • بازدید هفته : 212
  • بازدید ماه : 577
  • بازدید سال : 7,086
  • بازدید کلی : 35,321