Skip to main content Skip to docs navigation

قم بإدارة التخطيط والمحاذاة والأحجام لأعمدة الشبكة والتنقل والمكونات وغيرها بسرعة باستخدام مجموعة كاملة من أدوات الـ flexbox المتجاوبة. بالنسبة للتنفيذات الأكثر تعقيداً، قد يكون من الضروري استخدام CSS مخصص.

تفعيل سلوكيات المرونة (Flex)

استخدم أدوات display لإنشاء حاوية flexbox وتحويل عناصر الأبناء المباشرة إلى عناصر flex. يمكن تعديل حاويات وعناصر flex بشكل أكبر باستخدام خصائص flex إضافية.

I'm a flexbox container!
html
<div class="d-flex p-2">I'm a flexbox container!</div>
I'm an inline flexbox container!
html
<div class="d-inline-flex p-2">I'm an inline flexbox container!</div>

توجد أيضاً متغيرات متوافقة مع الشاشات (Responsive) لكل من .d-flex و .d-inline-flex.

  • .d-flex
  • .d-inline-flex
  • .d-sm-flex
  • .d-sm-inline-flex
  • .d-md-flex
  • .d-md-inline-flex
  • .d-lg-flex
  • .d-lg-inline-flex
  • .d-xl-flex
  • .d-xl-inline-flex
  • .d-xxl-flex
  • .d-xxl-inline-flex

الاتجاه

حدد اتجاه عناصر المرونة (flex items) في حاوية المرونة باستخدام أدوات الاتجاه. في معظم الحالات، يمكنك حذف الفئة الأفقية هنا لأن القيمة الافتراضية للمتصفح هي row. ومع ذلك، قد تواجه مواقف تحتاج فيها إلى تعيين هذه القيمة بشكل صريح (مثل التخطيطات المتوافقة مع الشاشات).

استخدم .flex-row لتعيين اتجاه أفقي (الافتراضي في المتصفح)، أو .flex-row-reverse لبدء الاتجاه الأفقي من الجانب المقابل.

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
html
<div class="d-flex flex-row mb-3">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>

استخدم .flex-column لتعيين اتجاه رأسي، أو .flex-column-reverse لبدء الاتجاه الرأسي من الجانب المقابل.

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
html
<div class="d-flex flex-column mb-3">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse">
  <div class="p-2">Flex item 1</div>
  <div class="p-2">Flex item 2</div>
  <div class="p-2">Flex item 3</div>
</div>

توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ flex-direction.

  • .flex-row
  • .flex-row-reverse
  • .flex-column
  • .flex-column-reverse
  • .flex-sm-row
  • .flex-sm-row-reverse
  • .flex-sm-column
  • .flex-sm-column-reverse
  • .flex-md-row
  • .flex-md-row-reverse
  • .flex-md-column
  • .flex-md-column-reverse
  • .flex-lg-row
  • .flex-lg-row-reverse
  • .flex-lg-column
  • .flex-lg-column-reverse
  • .flex-xl-row
  • .flex-xl-row-reverse
  • .flex-xl-column
  • .flex-xl-column-reverse
  • .flex-xxl-row
  • .flex-xxl-row-reverse
  • .flex-xxl-column
  • .flex-xxl-column-reverse

محاذاة المحتوى

استخدم أدوات justify-content على حاويات flexbox لتغيير محاذاة عناصر المرونة (flex items) على المحور الرئيسي (المحور x في البداية، والمحور y إذا كان flex-direction: column). اختر من بين start (الافتراضي في المتصفح)، أو end أو center أو between أو around أو evenly.

Justify
Content
Start
Justify
Content
End
Justify
Content
Center
Justify
Content
Between
Justify
Content
Around
Justify
Content
Evenly
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
<div class="d-flex justify-content-evenly">...</div>

توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ justify-content.

  • .justify-content-start
  • .justify-content-end
  • .justify-content-center
  • .justify-content-between
  • .justify-content-around
  • .justify-content-evenly
  • .justify-content-sm-start
  • .justify-content-sm-end
  • .justify-content-sm-center
  • .justify-content-sm-between
  • .justify-content-sm-around
  • .justify-content-sm-evenly
  • .justify-content-md-start
  • .justify-content-md-end
  • .justify-content-md-center
  • .justify-content-md-between
  • .justify-content-md-around
  • .justify-content-md-evenly
  • .justify-content-lg-start
  • .justify-content-lg-end
  • .justify-content-lg-center
  • .justify-content-lg-between
  • .justify-content-lg-around
  • .justify-content-lg-evenly
  • .justify-content-xl-start
  • .justify-content-xl-end
  • .justify-content-xl-center
  • .justify-content-xl-between
  • .justify-content-xl-around
  • .justify-content-xl-evenly
  • .justify-content-xxl-start
  • .justify-content-xxl-end
  • .justify-content-xxl-center
  • .justify-content-xxl-between
  • .justify-content-xxl-around
  • .justify-content-xxl-evenly

محاذاة العناصر

استخدم أدوات align-items على حاويات flexbox لتغيير محاذاة عناصر المرونة (flex items) على المحور المتقاطع (المحور y في البداية، والمحور x إذا كان flex-direction: column). اختر من بين start أو end أو center أو baseline أو stretch (الافتراضي في المتصفح).

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-items-start">...</div>
<div class="d-flex align-items-end">...</div>
<div class="d-flex align-items-center">...</div>
<div class="d-flex align-items-baseline">...</div>
<div class="d-flex align-items-stretch">...</div>

توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ align-items.

  • .align-items-start
  • .align-items-end
  • .align-items-center
  • .align-items-baseline
  • .align-items-stretch
  • .align-items-sm-start
  • .align-items-sm-end
  • .align-items-sm-center
  • .align-items-sm-baseline
  • .align-items-sm-stretch
  • .align-items-md-start
  • .align-items-md-end
  • .align-items-md-center
  • .align-items-md-baseline
  • .align-items-md-stretch
  • .align-items-lg-start
  • .align-items-lg-end
  • .align-items-lg-center
  • .align-items-lg-baseline
  • .align-items-lg-stretch
  • .align-items-xl-start
  • .align-items-xl-end
  • .align-items-xl-center
  • .align-items-xl-baseline
  • .align-items-xl-stretch
  • .align-items-xxl-start
  • .align-items-xxl-end
  • .align-items-xxl-center
  • .align-items-xxl-baseline
  • .align-items-xxl-stretch

محاذاة ذاتية (Align self)

استخدم أدوات align-self على عناصر المرونة (flexbox items) لتغيير محاذاتها بشكل فردي على المحور المتقاطع (المحور y في البداية، والمحور x إذا كان flex-direction: column). اختر من بين نفس خيارات align-items: start أو end أو center أو baseline أو stretch (الافتراضي في المتصفح).

Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
Flex item
Aligned flex item
Flex item
<div class="align-self-start">Aligned flex item</div>
<div class="align-self-end">Aligned flex item</div>
<div class="align-self-center">Aligned flex item</div>
<div class="align-self-baseline">Aligned flex item</div>
<div class="align-self-stretch">Aligned flex item</div>

توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ align-self.

  • .align-self-start
  • .align-self-end
  • .align-self-center
  • .align-self-baseline
  • .align-self-stretch
  • .align-self-sm-start
  • .align-self-sm-end
  • .align-self-sm-center
  • .align-self-sm-baseline
  • .align-self-sm-stretch
  • .align-self-md-start
  • .align-self-md-end
  • .align-self-md-center
  • .align-self-md-baseline
  • .align-self-md-stretch
  • .align-self-lg-start
  • .align-self-lg-end
  • .align-self-lg-center
  • .align-self-lg-baseline
  • .align-self-lg-stretch
  • .align-self-xl-start
  • .align-self-xl-end
  • .align-self-xl-center
  • .align-self-xl-baseline
  • .align-self-xl-stretch
  • .align-self-xxl-start
  • .align-self-xxl-end
  • .align-self-xxl-center
  • .align-self-xxl-baseline
  • .align-self-xxl-stretch

ملء (Fill)

استخدم الفئة (class) .flex-fill على سلسلة من العناصر الشقيقة لإجبارها على اتخاذ عرض مساوٍ لمحتواها (أو عرض متساوٍ إذا كان محتواها لا يتجاوز حدود صناديق الحدود الخاصة بها) مع شغل جميع المساحات الأفقية المتاحة.

Flex item with a lot of content
Flex item
Flex item
html
<div class="d-flex">
  <div class="p-2 flex-fill">Flex item with a lot of content</div>
  <div class="p-2 flex-fill">Flex item</div>
  <div class="p-2 flex-fill">Flex item</div>
</div>

. توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ fill-flex.

  • .flex-fill
  • .flex-sm-fill
  • .flex-md-fill
  • .flex-lg-fill
  • .flex-xl-fill
  • .flex-xxl-fill

النمو والتقلص (Grow and shrink)

استخدم أدوات .flex-grow-* لتبديل قدرة عنصر المرونة (flex item) على النمو لملء المساحة المتاحة. في المثال أدناه، تستخدم العناصر ذات الفئة .flex-grow-1 كل المساحة المتاحة التي يمكنها ذلك، مع السماح لعنصري المرونة المتبقيين بمساحتهما الضرورية.

Flex item
Flex item
Third flex item
html
<div class="d-flex">
  <div class="p-2 flex-grow-1">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Third flex item</div>
</div>

استخدم أدوات .flex-shrink-* لتبديل قدرة عنصر المرونة (flex item) على التقلص إذا لزم الأمر. في المثال أدناه، يتم إجبار عنصر المرونة الثاني ذو الفئة .flex-shrink-1 على لف محتوياته إلى سطر جديد، "يتقلص" للسماح بمساحة أكبر لعنصر المرونة السابق ذو الفئة .w-100.

Flex item
Flex item
html
<div class="d-flex">
  <div class="p-2 w-100">Flex item</div>
  <div class="p-2 flex-shrink-1">Flex item</div>
</div>

توجد أيضاً متغيرات متوافقة مع الشاشات (Responsive) لـ flex-grow و flex-shrink.

  • .flex-{grow|shrink}-0
  • .flex-{grow|shrink}-1
  • .flex-sm-{grow|shrink}-0
  • .flex-sm-{grow|shrink}-1
  • .flex-md-{grow|shrink}-0
  • .flex-md-{grow|shrink}-1
  • .flex-lg-{grow|shrink}-0
  • .flex-lg-{grow|shrink}-1
  • .flex-xl-{grow|shrink}-0
  • .flex-xl-{grow|shrink}-1
  • .flex-xxl-{grow|shrink}-0
  • .flex-xxl-{grow|shrink}-1

الهوامش التلقائية (Auto margins)

يمكن لـ Flexbox القيام بأشياء رائعة حقاً عندما تمزج محاذات المرونة مع الهوامش التلقائية. موضح أدناه ثلاثة أمثلة للتحكم في عناصر المرونة عبر الهوامش التلقائية: الافتراضي (بدون هامش تلقائي)، ودفع عنصرين إلى اليمين (.me-auto)، ودفع عنصرين إلى اليسار (.ms-auto).

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
html
<div class="d-flex mb-3">
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
</div>

<div class="d-flex mb-3">
  <div class="me-auto p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
</div>

<div class="d-flex mb-3">
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="ms-auto p-2">Flex item</div>
</div>

مع محاذات العناصر (align-items)

حرك عنصر مرونة واحد رأسياً إلى الأعلى أو الأسفل من الحاوية عن طريق المزج بين align-items و flex-direction: column و margin-top: auto أو margin-bottom: auto.

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
html
<div class="d-flex align-items-start flex-column mb-3" style="height: 200px;">
  <div class="mb-auto p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
</div>

<div class="d-flex align-items-end flex-column mb-3" style="height: 200px;">
  <div class="p-2">Flex item</div>
  <div class="p-2">Flex item</div>
  <div class="mt-auto p-2">Flex item</div>
</div>

التفاف

غيّر كيفية التفاف عناصر المرونة في حاوية المرونة. اختر من عدم التفاف على الإطلاق (الافتراضي في المتصفح) باستخدام .flex-nowrap، أو التفاف باستخدام .flex-wrap، أو التفاف عكسي باستخدام .flex-wrap-reverse.

Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex flex-nowrap">
  ...
</div>
Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
<div class="d-flex flex-wrap">
  ...
</div>
Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
<div class="d-flex flex-wrap-reverse">
  ...
</div>

توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ flex-wrap.

  • .flex-nowrap
  • .flex-wrap
  • .flex-wrap-reverse
  • .flex-sm-nowrap
  • .flex-sm-wrap
  • .flex-sm-wrap-reverse
  • .flex-md-nowrap
  • .flex-md-wrap
  • .flex-md-wrap-reverse
  • .flex-lg-nowrap
  • .flex-lg-wrap
  • .flex-lg-wrap-reverse
  • .flex-xl-nowrap
  • .flex-xl-wrap
  • .flex-xl-wrap-reverse
  • .flex-xxl-nowrap
  • .flex-xxl-wrap
  • .flex-xxl-wrap-reverse

الترتيب (Order)

غيّر الترتيب المرئي لعناصر مرونة (flex items) محددة باستخدام مجموعة من أدوات order. نحن نوفر فقط خيارات لجعل العنصر أولاً أو أخيراً، بالإضافة إلى إعادة ضبط لاستخدام ترتيب الـ DOM. بما أن order يأخذ أي قيمة صحيحة من 0 إلى 5، أضف CSS مخصصاً لأي قيم إضافية مطلوبة.

First flex item
Second flex item
Third flex item
html
<div class="d-flex flex-nowrap">
  <div class="order-3 p-2">First flex item</div>
  <div class="order-2 p-2">Second flex item</div>
  <div class="order-1 p-2">Third flex item</div>
</div>

توجد أيضاً متغيرات متوافقة مع الشاشات (Responsive) لـ order.

  • .order-0
  • .order-1
  • .order-2
  • .order-3
  • .order-4
  • .order-5
  • .order-sm-0
  • .order-sm-1
  • .order-sm-2
  • .order-sm-3
  • .order-sm-4
  • .order-sm-5
  • .order-md-0
  • .order-md-1
  • .order-md-2
  • .order-md-3
  • .order-md-4
  • .order-md-5
  • .order-lg-0
  • .order-lg-1
  • .order-lg-2
  • .order-lg-3
  • .order-lg-4
  • .order-lg-5
  • .order-xl-0
  • .order-xl-1
  • .order-xl-2
  • .order-xl-3
  • .order-xl-4
  • .order-xl-5
  • .order-xxl-0
  • .order-xxl-1
  • .order-xxl-2
  • .order-xxl-3
  • .order-xxl-4
  • .order-xxl-5

توجد أيضاً فئات متوافقة مع الشاشات (Responsive) وهي .order-first و .order-last التي تغير ترتيب العنصر عن طريق تطبيق order: -1 و order: 6 على التوالي.

  • .order-first
  • .order-last
  • .order-sm-first
  • .order-sm-last
  • .order-md-first
  • .order-md-last
  • .order-lg-first
  • .order-lg-last
  • .order-xl-first
  • .order-xl-last
  • .order-xxl-first
  • .order-xxl-last

محاذاة المحتوى

استخدم أدوات align-content على حاويات flexbox لمحاذاة عناصر المرونة (flex items) معاً على المحور المتقاطع. اختر من بين start (الافتراضي في المتصفح)، أو end أو center أو between أو around أو stretch. ولتوضيح هذه الأدوات، قمنا بفرض flex-wrap: wrap وزيادة عدد عناصر المرونة.

تنبيه! هذه الخاصية ليس لها أي تأثير على الصفوف المفردة من عناصر المرونة.

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-content-start flex-wrap">
  ...
</div>
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-content-end flex-wrap">...</div>
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-content-center flex-wrap">...</div>
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-content-between flex-wrap">...</div>
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-content-around flex-wrap">...</div>
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
<div class="d-flex align-content-stretch flex-wrap">...</div>

توجد أيضاً أشكال متوافقة مع الشاشات (Responsive) لـ align-content.

  • .align-content-start
  • .align-content-end
  • .align-content-center
  • .align-content-between
  • .align-content-around
  • .align-content-stretch
  • .align-content-sm-start
  • .align-content-sm-end
  • .align-content-sm-center
  • .align-content-sm-between
  • .align-content-sm-around
  • .align-content-sm-stretch
  • .align-content-md-start
  • .align-content-md-end
  • .align-content-md-center
  • .align-content-md-between
  • .align-content-md-around
  • .align-content-md-stretch
  • .align-content-lg-start
  • .align-content-lg-end
  • .align-content-lg-center
  • .align-content-lg-between
  • .align-content-lg-around
  • .align-content-lg-stretch
  • .align-content-xl-start
  • .align-content-xl-end
  • .align-content-xl-center
  • .align-content-xl-between
  • .align-content-xl-around
  • .align-content-xl-stretch
  • .align-content-xxl-start
  • .align-content-xxl-end
  • .align-content-xxl-center
  • .align-content-xxl-between
  • .align-content-xxl-around
  • .align-content-xxl-stretch

كائن الوسائط (Media object)

هل تتطلع إلى محاكاة مكون كائن الوسائط (media object component) من Bootstrap 4؟ أعد إنشاءه في وقت قصير باستخدام بعض أدوات المرونة (flex) التي تتيح مرونة وتخصيصاً أكبر من ذي قبل.

PlaceholderImage
This is some content from a media component. You can replace this with any content and adjust it as needed.
html
<div class="d-flex">
  <div class="flex-shrink-0">
    <img src="..." alt="...">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

ولنفترض أنك تريد توسيط المحتوى عمودياً بجانب الصورة:

PlaceholderImage
This is some content from a media component. You can replace this with any content and adjust it as needed.
html
<div class="d-flex align-items-center">
  <div class="flex-shrink-0">
    <img src="..." alt="...">
  </div>
  <div class="flex-grow-1 ms-3">
    This is some content from a media component. You can replace this with any content and adjust it as needed.
  </div>
</div>

الـ (CSS)

واجهة برمجة تطبيقات أدوات Sass (Sass utilities API)

يتم التصريح عن أدوات Flexbox في الـ utilities API الخاصة بنا في scss/_utilities.scss. تعلم كيفية استخدام الـ utilities API.

"flex": (
  responsive: true,
  property: flex,
  values: (fill: 1 1 auto)
),
"flex-direction": (
  responsive: true,
  property: flex-direction,
  class: flex,
  values: row column row-reverse column-reverse
),
"flex-grow": (
  responsive: true,
  property: flex-grow,
  class: flex,
  values: (
    grow-0: 0,
    grow-1: 1,
  )
),
"flex-shrink": (
  responsive: true,
  property: flex-shrink,
  class: flex,
  values: (
    shrink-0: 0,
    shrink-1: 1,
  )
),
"flex-wrap": (
  responsive: true,
  property: flex-wrap,
  class: flex,
  values: wrap nowrap wrap-reverse
),
"justify-content": (
  responsive: true,
  property: justify-content,
  values: (
    start: flex-start,
    end: flex-end,
    center: center,
    between: space-between,
    around: space-around,
    evenly: space-evenly,
  )
),
"align-items": (
  responsive: true,
  property: align-items,
  values: (
    start: flex-start,
    end: flex-end,
    center: center,
    baseline: baseline,
    stretch: stretch,
  )
),
"align-content": (
  responsive: true,
  property: align-content,
  values: (
    start: flex-start,
    end: flex-end,
    center: center,
    between: space-between,
    around: space-around,
    stretch: stretch,
  )
),
"align-self": (
  responsive: true,
  property: align-self,
  values: (
    auto: auto,
    start: flex-start,
    end: flex-end,
    center: center,
    baseline: baseline,
    stretch: stretch,
  )
),
"order": (
  responsive: true,
  property: order,
  values: (
    first: -1,
    0: 0,
    1: 1,
    2: 2,
    3: 3,
    4: 4,
    5: 5,
    last: 6,
  ),
),