CSS Flexible Box Layout

From binaryoption
Revision as of 21:18, 22 April 2025 by Admin (talk | contribs) (@pipegas_WP)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Баннер1

تخطيط CSS المرن (Flexible Box Layout)

تخطيط CSS المرن، أو Flexbox كما هو معروف على نطاق واسع، هو نموذج تخطيط قوي للغاية في CSS يتيح لك تصميم واجهات مستخدم معقدة بسهولة ومرونة. يحل Flexbox العديد من المشكلات التي كانت تواجه المطورين في نماذج التخطيط القديمة مثل float و positioning. يهدف هذا المقال إلى تقديم شرح شامل لـ Flexbox للمبتدئين، مع التركيز على المفاهيم الأساسية وكيفية تطبيقها.

ما هو Flexbox؟

Flexbox مصمم لتوفير تحكم أكثر فعالية في توزيع المساحات داخل حاوية. بدلاً من محاولة التحكم في عناصر متعددة في وقت واحد، يتيح لك Flexbox التعامل مع عنصر واحد (الحاوية) وتحديد كيفية ترتيب وتوزيع العناصر الموجودة بداخله (العناصر المرنة). هذا يجعله مثاليًا لتصميم تخطيطات الاستجابة التي تتكيف مع أحجام الشاشات المختلفة.

المفاهيم الأساسية

  • **حاوية Flexbox (Flex Container):** العنصر الذي يحتوي على العناصر المرنة. يتم تعريف الحاوية باستخدام الخاصية `display: flex;` أو `display: inline-flex;`. الفرق بينهما هو أن `flex` تجعل الحاوية عنصرًا على مستوى الكتلة، بينما `inline-flex` تجعلها عنصرًا مضمنًا.
  • **العناصر المرنة (Flex Items):** العناصر المباشرة الموجودة داخل حاوية Flexbox.
  • **المحور الرئيسي (Main Axis):** الاتجاه الذي يتم فيه ترتيب العناصر المرنة. يتم تحديده بواسطة الخاصية `flex-direction`. بشكل افتراضي، يكون المحور الرئيسي أفقيًا.
  • **المحور العرضي (Cross Axis):** الاتجاه العمودي على المحور الرئيسي.

الخصائص الأساسية لحاوية Flexbox

| الخاصية | الوصف | القيم الشائعة | |---|---|---| | `flex-direction` | يحدد اتجاه المحور الرئيسي. | `row` (افتراضي), `row-reverse`, `column`, `column-reverse` | | `flex-wrap` | يحدد ما إذا كان يجب التفاف العناصر المرنة إلى سطر جديد إذا تجاوزت عرض الحاوية. | `nowrap` (افتراضي), `wrap`, `wrap-reverse` | | `justify-content` | يحدد كيفية توزيع العناصر المرنة على طول المحور الرئيسي. | `flex-start`, `flex-end`, `center`, `space-between`, `space-around`, `space-evenly` | | `align-items` | يحدد كيفية توزيع العناصر المرنة على طول المحور العرضي. | `flex-start`, `flex-end`, `center`, `baseline`, `stretch` (افتراضي) | | `align-content` | يحدد كيفية توزيع خطوط العناصر المرنة (عند استخدام `flex-wrap: wrap;`) على طول المحور العرضي. | `flex-start`, `flex-end`, `center`, `space-between`, `space-around`, `stretch` (افتراضي) |

الخصائص الأساسية للعناصر المرنة

| الخاصية | الوصف | القيم الشائعة | |---|---|---| | `flex-grow` | يحدد مقدار المساحة الإضافية التي يجب أن يشغلها العنصر المرن بالنسبة للعناصر الأخرى. | رقم (افتراضي: 0) | | `flex-shrink` | يحدد مقدار المساحة التي يجب أن يتقلص بها العنصر المرن بالنسبة للعناصر الأخرى. | رقم (افتراضي: 1) | | `flex-basis` | يحدد الحجم الأولي للعنصر المرن قبل أن يتم توزيع المساحة المتاحة. | `auto` (افتراضي), قيمة طول (مثل `100px`) | | `flex` | اختصار للخصائص `flex-grow`, `flex-shrink`, و `flex-basis`. | `0 1 auto` (افتراضي), `1 1 0`, `2 0 100px` | | `align-self` | يسمح بتجاوز قيمة `align-items` للعنصر المرن المحدد. | `auto` (افتراضي), `flex-start`, `flex-end`, `center`, `baseline`, `stretch` |

أمثلة عملية

مثال 1: تخطيط أفقي بسيط

```css .container {

 display: flex;

}

.item {

 width: 100px;
 height: 100px;
 background-color: lightblue;
 margin: 5px;

} ```

هذا الكود سينشئ حاوية أفقية تحتوي على عدة عناصر مرنة، كل منها بعرض وارتفاع محددين.

مثال 2: توزيع المساحة بالتساوي

```css .container {

 display: flex;
 justify-content: space-between;

}

.item {

 width: 100px;
 height: 100px;
 background-color: lightblue;
 margin: 5px;

} ```

هذا الكود سيوزع العناصر المرنة بالتساوي على طول المحور الرئيسي، مع وجود مساحة بين كل عنصر.

Flexbox و الاستجابة

Flexbox هو أداة قوية لإنشاء تصميمات ويب متجاوبة. يمكنك استخدام `flex-wrap` لضمان التفاف العناصر المرنة إلى سطر جديد على الشاشات الصغيرة، واستخدام `flex-direction: column` لتغيير اتجاه التخطيط على الشاشات الأصغر. بالإضافة إلى ذلك، يمكن استخدام استعلامات الوسائط لتطبيق أنماط Flexbox مختلفة بناءً على حجم الشاشة.

مقارنة مع نماذج التخطيط الأخرى

  • **Float**: Float غالبًا ما يتطلب استخدام `clearfix` لإصلاح المشكلات المتعلقة بالارتفاع. Flexbox يتجنب هذه المشكلات.
  • **Positioning**: Positioning يمكن أن يكون معقدًا ويتطلب حسابات دقيقة. Flexbox يوفر تحكمًا أبسط وأكثر مرونة.
  • **CSS Grid**: CSS Grid هو نموذج تخطيط ثنائي الأبعاد، بينما Flexbox هو نموذج تخطيط أحادي الأبعاد. غالبًا ما يتم استخدام Flexbox للتخطيطات الداخلية، بينما يتم استخدام CSS Grid للتخطيطات الرئيسية للصفحة.

موارد إضافية

استراتيجيات تداول الخيارات الثنائية ذات الصلة (للمطورين المهتمين بالتحليل التقني)

تحليل حجم التداول المرتبط بـ Flexbox (مجازي)

يمكن اعتبار "حجم التداول" في سياق Flexbox هو عدد العناصر المرنة التي يتم التعامل معها. كلما زاد عدد العناصر المرنة، زادت الحاجة إلى فهم الخصائص المتاحة لضمان تخطيط فعال وسهل الصيانة.

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер