Flexbox CSS
- الصفحة السابقة حجم الصندوق CSS
- الصفحة التالية استعلامات الإعلام CSS
وحدة تخطيط Flexbox CSS
قبل إصدار وحدة تخطيط Flexbox (الظهور)، كانت هناك أنماط تخطيط متاحة من أربعة أنماط هي:
- كتلة (Block)، لتحديد جزء من صفحة الويب (القسم)
- داخلي (Inline)، لتحديد النص
- الجدول، لبيانات جدول ثنائي الأبعاد
- التوضيح، لتحديد موقع العنصر بشكل واضح
وحدة التخطيط Flexbox، تتيح تصميم بنية التخطيط التفاعلية التكيفية بسهولة دون استخدام الدفع أو التوضيح.
دعم المتصفح
جميع المتصفحات الحديثة تدعمها flexbox
خصائص.
29.0 | 11.0 | 22.0 | 10 | 48 |
عناصر Flexbox
لبدء استخدام نموذج Flexbox، يجب عليك أولاً تحديد وحدة Flex.
تُمثل العناصر في الأعلى حاوية منسوبة تحتوي على ثلاثة عناصر منسوبة (المنطقة الزرقاء).
مثال
حاوية تحتوي على ثلاثة عناصر منسوبة:
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> </div>
العنصر الأب (الحاوية)
من خلال وضع display
تُعين الخاصية على flex
،حيث ستصبح الحاوية قابلة للتمدد:
مثال
.flex-container { display: flex; }
هذه هي خاصيات حاوية اللياقة:
خصائص flex-direction
flex-direction
تحدد الخاصية التوجيه الذي سيتم فيه ت堆ف العناصر المنسوبة في الحاوية.
مثال
column
القيمة تضبط التوجيه العمودي للعناصر المنسوبة (من الأعلى إلى الأسفل):
.flex-container { display: flex; flex-direction: column; }
مثال
column-reverse
القيمة ت堆ف العناصر المنسوبة عمودياً (من الأسفل إلى الأعلى):
.flex-container { display: flex; flex-direction: column-reverse; }
مثال
row
القيمة ت堆ف العناصر المنسوبة أفقياً (من اليسار إلى اليمين):
.flex-container { display: flex; flex-direction: row; }
مثال
row-reverse
القيمة ت堆ف العناصر المنسوبة أفقياً (من اليمين إلى اليسار):
.flex-container { display: flex; flex-direction: row-reverse; }
خصائص flex-wrap
flex-wrap
تقرر الخاصية ما إذا كان يجب تغيير سطر العناصر المنسوبة.
يحتوي هذا المثال على 12 عنصر منسوب ليعرض خاصية flex-wrap بشكل أفضل.
مثال
wrap
القيمة تقرر تغيير سطر العناصر المنسوبة إذا لزم الأمر:
.flex-container { display: flex; flex-wrap: wrap; }
مثال
nowrap
القيمة تقرر عدم تغيير سطر العناصر المنسوبة (القيمة الافتراضية):
.flex-container { display: flex; flex-wrap: nowrap; }
مثال
wrap-reverse
القيمة تقرر، إذا لزم الأمر، أن يتم تغيير سطر العناصر المنسوبة في العكس:
.flex-container { display: flex; flex-wrap: wrap-reverse; }
خصائص flex-flow
flex-flow
الخاصية هي اختصار لتحديد الخاصيتين flex-direction و flex-wrap في نفس الوقت.
مثال
.flex-container { display: flex; flex-flow: row wrap; }
خصائص justify-content
justify-content
يستخدم الخاصية لتحديد التوجيه للعناصر المنسوبة:
مثال
center
القيمة تضع العناصر المنسوبة في منتصف الحاوية:
.flex-container { display: flex; justify-content: center; }
مثال
flex-start
القيمة تضع العناصر المنسوبة في بداية الحاوية (القيمة الافتراضية):
.flex-container { display: flex; justify-content: flex-start; }
مثال
flex-end
القيمة تضع العناصر المنسوبة في نهاية الحاوية:
.flex-container { display: flex; justify-content: flex-end; }
مثال
space-around
القيمة تظهر العناصر المنسوبة مع مسافات قبل وبعد وبين السطور:
.flex-container { display: flex; justify-content: space-around; }
مثال
space-between
القيمة تظهر العناصر المنسوبة مع مسافات بين السطور:
.flex-container { display: flex; justify-content: space-between; }
خصائص align-items
align-items
يستخدم الخاصية لتحديد التوجيه العمودي للعناصر المنسوبة.
في هذه الأمثلة، نستخدم حاوية بعلو 200 بكسل من أجل عرض خاصية align-items بشكل أفضل.
مثال
center
القيمة تجعل مشاريع flex تتوازى في منتصف الصندوق:
.flex-container { display: flex; height: 200px; align-items: center; }
مثال
flex-start
القيمة تجعل مشاريع flex تتوازى في أعلى الصندوق:
.flex-container { display: flex; height: 200px; align-items: flex-start; }
مثال
flex-end
القيمة تجعل مشاريع المروجة تتوازى في أسفل الصندوق:
.flex-container { display: flex; height: 200px; align-items: flex-end; }
مثال
stretch
القيمة تجعل مشاريع flex تمد لتملأ الصندوق (القيمة الافتراضية):
.flex-container { display: flex; height: 200px; align-items: stretch; }
مثال
baseline
القيمة تجعل مشاريع flex تتوازى بناءً على الأساس النصي:
.flex-container { display: flex; height: 200px; align-items: baseline; }
ملاحظة:في هذا المثال، نستخدم حجمًا مختلفًا لـ font-size لتوضيح أن المشاريع قد تم توازيها بناءً على الأساس النصي:
خصائص align-content
align-content
الخاصية تستخدم لتوازي خطوط المروجة.
في هذه الأمثلة، نستخدم صندوقًا بارتفاع 600 بكسل، ونضبط خاصية flex-wrap إلى wrap لتوضيح خاصية align-content بشكل أفضل.
مثال
space-between
القيمة تظهر خطوط المروجة مع مسافات متساوية بينها:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-between; }
مثال
space-around
القيمة تظهر خطوط المروجة مدمجة مع مسافات قبلها وبعدها:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-around; }
مثال
stretch
القيمة تمد خطوط المروجة لتملأ المساحة المتبقية (القيمة الافتراضية):
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: stretch; }
مثال
center
القيمة تظهر خطوط المروجة في منتصف الصندوق:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: center; }
مثال
flex-start
القيمة تظهر خطوط المروجة في بداية الصندوق:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-start; }
مثال
flex-end
القيمة تظهر خطوط المروجة في نهاية الصندوق:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-end; }
التوزيع المثالي
في المثال التالي، سنحل مشكلة نمط شائعة جدًا: التوزيع المثالي.
الحل: قم بتحديد justify-content
و align-items
إذا تم تعيين الخاصية إلى الوسط، فإن مشاريع flex ستعمل بشكل مثالي في الوسط:
مثال
.flex-container { display: flex; height: 300px; justify-content: center; align-items: center; }
عناصر (المشاريع)
عناصر المباشرين للوحدة المروجة (flex) تصبح مشاريع مروجة تلقائيًا.
العناصر أعلاه تمثل أربعة عناصر مرونة زرقاء داخل وعاء مرونة رمادي.
مثال
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div>
خصائص المرونة المستخدمة في العناصر المرونة هي:
order
flex-grow
flex-shrink
flex-basis
flex
align-self
خصائص order
order
تحديد ترتيب العنصر المرونة.
ليس من الضروري أن يكون العنصر المرونة الأول في الكود هو العنصر الأول في التركيب.
order
يجب أن يكون القيمة عددًا، القيمة الافتراضية هي 0.
مثال
order
يمكن تغيير ترتيب العناصر المرونة باستخدام هذه الخاصية.
<div class="flex-container"> <div style="order: 3">1</div> <div style="order: 2">2</div> <div style="order: 4">3</div> <div style="order: 1">4</div> </div>
خصائص flex-grow
flex-grow
تحديد مقدار النمو الذي سيتمتع به العنصر المرونة الخاص مقارنة بالعناصر المرونة الأخرى.
يجب أن يكون هذا القيمة عددًا، القيمة الافتراضية هي 0.
مثال
جعل سرعة النمو للعنصر الثالث من المرونة أسرع ثمانية مرات من العناصر المرونة الأخرى:
<div class="flex-container"> <div style="flex-grow: 1">1</div> <div style="flex-grow: 1">2</div> <div style="flex-grow: 8">3</div> </div>
خصائص flex-shrink
flex-shrink
تحديد مقدار النقص الذي سيشربه العنصر المرونة الخاص مقارنة بالعناصر المرونة الأخرى.
يجب أن يكون هذا القيمة عددًا، القيمة الافتراضية هي 0.
مثال
لا تدع العنصر الثالث من المرونة ينكمش بنفس المقدار كالعناصر المرونة الأخرى:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-shrink: 0">3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> </div>
خصائص flex-basis
flex-basis
تحديد طول العنصر الأولي لعدة مرونة.
مثال
ضبط طول العنصر الثالث من المرونة إلى 200 بكسل:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-basis: 200px">3</div> <div>4</div> </div>
خصائص flex
flex
خصائص flex-grow، flex-shrink و flex-basis هي اختصارات لخصائص flex.
مثال
جعل العنصر الثالث من المرونة غير قابل للنمو (0)، غير قابل لل縮ص (0)، وطوله الأولي 200 بكسل:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex: 0 0 200px">3</div> <div>4</div> </div>
خاصية align-self
align-self
تحديد طريقة التشابك للعناصر المحددة داخل وعاء المرونة.
align-self
الخصائص ستقوم بإزاحة الطريقة المحددة مسبقًا بواسطة خاصية align-items الخاصة بالصندوق.
في هذه الأمثلة، نستخدم صندوق إليكتروني ذو ارتفاع 200 بكسل لتحسين عرض خاصية align-self:
مثال
توجيه الثالثة من العناصر الإليكترونية إلى منتصف الصندوق:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="align-self: center">3</div> <div>4</div> </div>
مثال
توجيه الثانية من العناصر الإليكترونية إلى أعلى صندوق الإليكترونيات، وتوجيه الثالثة إلى أسفل الصندوق:
<div class="flex-container"> <div>1</div> <div style="align-self: flex-start">2</div> <div style="align-self: flex-end">3</div> <div>4</div> </div>
مكتبة صور مرونة باستخدام Flexbox
استخدام Flexbox لإنشاء مكتبة صور مرونة تختلف بين أربعة صور، إثنين من الصور أو صورة كاملة بناءً على حجم الشاشة:
موقع إنترنت مرونقي باستخدام Flexbox
استخدام Flexbox لإنشاء موقع إنترنت مرونقي يحتوي على قائمة توجيهية إليكترونية و محتوى إليكتروني:
خصائص CSS Flexbox
يُظهر الجدول أدناه خصائص CSS التي تستخدم مع flexbox:
خصائص | وصف |
---|---|
display | تحديد نوع الصندوق المستخدم للعناصر الـ HTML. |
flex-direction | تحديد اتجاه العناصر الإليكترونية داخل صندوق الإليكترونيات. |
justify-content | إزاحة العناصر الإليكترونية بشكل أفقي عندما لا تستخدم العناصر الإليكترونية جميع المساحات المتاحة على المحور الرئيسي. |
align-items | إزاحة العناصر الإليكترونية بشكل عمودي عندما لا تستخدم العناصر الإليكترونية جميع المساحات المتاحة على المحور الرئيسي. |
flex-wrap | تحديد ما إذا كان يجب تغيير سطر العناصر الإليكترونية، إذا لم يكن هناك مساحة كافية في خط flex لتشغيلها. |
align-content | تعديل سلوك خاصية flex-wrap. مثل align-items، ولكنها لا تقوم بإزاحة العناصر الإليكترونية، بل تقوم بإزاحة خط flex. |
flex-flow | خصائص القصيرات الخاصة ب flex-direction و flex-wrap. |
order | تحديد ترتيب العناصر الإليكترونية بالنسبة للعناصر الأخرى في نفس القالب. |
align-self | للأغراض الإليكترونية. تغطي خاصية align-items الخاصة بالقالب. |
flex | flex-grow،flex-shrink و flex-basis خصائص القصيرات. |
- الصفحة السابقة حجم الصندوق CSS
- الصفحة التالية استعلامات الإعلام CSS