CSS Flexible Box Layout
تخطيطات الصندوق المرنة في صفحات الويب
تُعدّ CSS Flexible Box Layout، أو ما يُعرف اختصارًا بـ Flexbox، أداة قوية ومرنة لتصميم واجهات المستخدم في تطوير الويب. ظهرت Flexbox كبديل لتخطيطات CSS التقليدية، مثل Float و Positioning، مما يوفر تحكمًا أكبر وأسهل في توزيع العناصر وتوسيطها داخل حاوية. يهدف هذا المقال إلى تقديم شرح شامل لمفاهيم Flexbox للمبتدئين، مع التركيز على كيفية تطبيقها في تصميم الويب.
ما هي Flexbox؟
Flexbox هي نموذج تخطيط أحادي البعد، أي أنها تتعامل مع التخطيط في اتجاه واحد إما أفقيًا (صف) أو رأسيًا (عمود). تعتمد Flexbox على مفهومين رئيسيين:
- حاوية Flexbox (Flex Container): العنصر الذي يحتوي على العناصر المرنة (Flex Items). يتم تعريف الحاوية باستخدام الخاصية `display: flex;` أو `display: inline-flex;`.
- عناصر Flexbox (Flex Items): العناصر المباشرة التابعة لحاوية Flexbox.
الخصائص الرئيسية لحاوية Flexbox
هناك العديد من الخصائص التي يمكن تطبيقها على حاوية Flexbox للتحكم في سلوك العناصر المرنة. إليكم بعض الخصائص الأكثر استخدامًا:
**الخاصية** | **الوصف** | **القيمة الافتراضية** |
`flex-direction` | يحدد اتجاه العناصر المرنة داخل الحاوية. | `row` |
`flex-wrap` | يحدد ما إذا كان يجب التفاف العناصر المرنة على سطر جديد إذا تجاوزت عرض الحاوية. | `nowrap` |
`justify-content` | يحدد كيفية توزيع العناصر المرنة على طول المحور الرئيسي (الأفقي في حالة `flex-direction: row`). | `flex-start` |
`align-items` | يحدد كيفية محاذاة العناصر المرنة على طول المحور الفرعي (الرأسي في حالة `flex-direction: row`). | `stretch` |
`align-content` | يحدد كيفية توزيع العناصر المرنة المتعددة الأسطر على طول المحور الفرعي. | `stretch` |
شرح مفصل لبعض الخصائص
- `flex-direction`': يمكن أن تأخذ القيم التالية:
* `row`: العناصر المرنة تظهر في صف واحد (افتراضي). * `row-reverse`: العناصر المرنة تظهر في صف واحد بترتيب عكسي. * `column`: العناصر المرنة تظهر في عمود واحد. * `column-reverse`: العناصر المرنة تظهر في عمود واحد بترتيب عكسي.
- `justify-content`': تحدد كيفية توزيع العناصر على طول المحور الرئيسي. الخيارات تشمل:
* `flex-start`: العناصر محاذية إلى بداية المحور الرئيسي. * `flex-end`: العناصر محاذية إلى نهاية المحور الرئيسي. * `center`: العناصر متمركزة على طول المحور الرئيسي. * `space-between`: العناصر موزعة بالتساوي على طول المحور الرئيسي، مع مساحة فارغة بينها. * `space-around`: العناصر موزعة بالتساوي على طول المحور الرئيسي، مع مساحة فارغة حولها. * `space-evenly`: العناصر موزعة بالتساوي على طول المحور الرئيسي، مع مساحة فارغة متساوية بينها وحولها.
- `align-items`': تحدد كيفية محاذاة العناصر على طول المحور الفرعي. الخيارات تشمل:
* `stretch`: العناصر تمتد لملء الحاوية (افتراضي). * `flex-start`: العناصر محاذية إلى بداية المحور الفرعي. * `flex-end`: العناصر محاذية إلى نهاية المحور الفرعي. * `center`: العناصر متمركزة على طول المحور الفرعي. * `baseline`: العناصر محاذية بناءً على خط الأساس للنص.
خصائص عناصر Flexbox
يمكن أيضًا تطبيق خصائص على العناصر المرنة نفسها للتحكم في سلوكها داخل الحاوية.
**الخاصية** | **الوصف** | **القيمة الافتراضية** |
`flex-grow` | يحدد مقدار المساحة الإضافية التي يجب أن يشغلها العنصر المرن إذا كان هناك مساحة فارغة في الحاوية. | `0` |
`flex-shrink` | يحدد مقدار المساحة التي يجب أن يتقلصها العنصر المرن إذا كان هناك مساحة غير كافية في الحاوية. | `1` |
`flex-basis` | يحدد الحجم الأولي للعنصر المرن قبل توزيع المساحة المتاحة. | `auto` |
`flex` | اختصار لـ `flex-grow` و `flex-shrink` و `flex-basis`. | `0 1 auto` |
`align-self` | يحدد محاذاة العنصر المرن على طول المحور الفرعي، متجاوزًا قيمة `align-items` للحاوية. | `auto` |
استخدام `flex` كاختصار
الخاصية `flex` هي اختصار مفيد يتيح لك تحديد قيم `flex-grow` و `flex-shrink` و `flex-basis` في سطر واحد. على سبيل المثال، `flex: 1 1 auto;` تعادل `flex-grow: 1; flex-shrink: 1; flex-basis: auto;`.
أمثلة على استخدام Flexbox
- إنشاء قائمة تنقل أفقية بسيطة: استخدم `display: flex;` على حاوية القائمة و `flex-direction: row;` لتوزيع عناصر القائمة أفقيًا.
- توسيط عنصر داخل حاوية: استخدم `justify-content: center;` و `align-items: center;` على الحاوية لتوسيط العنصر أفقيًا ورأسيًا.
- إنشاء تخطيط متعدد الأعمدة: استخدم `flex-direction: column;` و `flex-wrap: wrap;` لإنشاء تخطيط يتكيف مع أحجام الشاشات المختلفة.
Flexbox و الاستجابة (تصميم الويب)
تعتبر Flexbox أداة أساسية في التصميم المستجيب. بفضل قدرتها على التكيف مع أحجام الشاشات المختلفة، يمكن استخدامها لإنشاء تخطيطات ويب تعمل بشكل جيد على جميع الأجهزة. بالإضافة إلى ذلك، تعمل Flexbox بشكل جيد مع Media Queries لتقديم تخطيطات مختلفة بناءً على حجم الشاشة.
مقارنة Flexbox بـ CSS Grid Layout
بينما تشترك Flexbox و CSS Grid Layout في بعض أوجه التشابه، إلا أنهما مصممتان لأغراض مختلفة. Flexbox مثالية للتخطيطات أحادية البعد (صف أو عمود)، بينما Grid Layout مناسبة للتخطيطات ثنائية الأبعاد (صفوف وأعمدة). غالبًا ما يتم استخدام Flexbox داخل Grid Layout لتوفير تحكم إضافي في توزيع العناصر داخل الخلايا.
أدوات مفيدة
- Flexbox Froggy: لعبة تعليمية تفاعلية لتعلم Flexbox.
- CSS Flexbox Generator: أداة لإنشاء كود Flexbox بسهولة.
- Flexbox Defense: لعبة أخرى لتعزيز فهمك لـ Flexbox.
استراتيجيات تداول ذات صلة (للمقارنة و الفهم)
- استراتيجية الاختراق
- استراتيجية المتوسط المتحرك
- استراتيجية الماكد
- استراتيجية مؤشر القوة النسبية
- استراتيجية بولينجر باند
- استراتيجية فيبوناتشي
- استراتيجية Ichimoku Cloud
- استراتيجية التداول المتأرجح
- استراتيجية التداول اليومي
- استراتيجية سكالبينج
- استراتيجية مارتينجال
- استراتيجية أنتي مارتينجال
- استراتيجية التداول اللحظي
- استراتيجية التداول على الأخبار
- استراتيجية التداول بناءً على الأنماط
تحليل فني و حجم التداول
- الشموع اليابانية
- خطوط الاتجاه
- مستويات الدعم والمقاومة
- حجم التداول
- مؤشر حجم التداول
- تحليل OBV
- تحليل المكرر
روابط خارجية
- [1](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout)
- [2](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
ابدأ التداول الآن
سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين