CSS-Tricks Flexbox Complete Guide
دليل شامل لـ Flexbox من CSS-Tricks: للمبتدئين
Flexbox (تخطيط الصندوق المرن) هو نموذج تخطيط CSS قوي وفعال يتيح لك تصميم واجهات مستخدم معقدة بسهولة. يوفر Flexbox طريقة فعالة لتوزيع المساحة بين العناصر داخل حاوية، ومواءمتها، وتغيير اتجاه تخطيطها. هذا المقال، المستوحى من دليل CSS-Tricks الشامل، يهدف إلى تعريفك بـ Flexbox وتقديم أساس متين لفهمه واستخدامه في مشاريع تطوير الويب الخاصة بك.
ما هو Flexbox؟
تقليديًا، كان تخطيط صفحات الويب يعتمد على نماذج مثل التخطيط التقليدي (Normal Flow)، Float، و Positioning. هذه النماذج غالبًا ما كانت تتطلب الكثير من التعليمات البرمجية المعقدة لتحقيق تخطيطات مرنة ومتجاوبة. Flexbox يهدف إلى تبسيط هذه العملية من خلال توفير واجهة برمجة تطبيقات (API) مرنة وفعالة.
Flexbox مصمم للتعامل مع تخطيطات ذات بعد واحد في كل مرة – إما صف (row) أو عمود (column). هذا يجعله مثاليًا لتخطيط عناصر القائمة، أو أشرطة الأدوات، أو أي عنصر يحتاج إلى التوزيع والمرونة. بينما Grid Layout هو الأنسب للتخطيطات ثنائية الأبعاد.
المفاهيم الأساسية لـ Flexbox
لفهم Flexbox بشكل كامل، يجب أن تكون على دراية بالمفاهيم التالية:
- **Flex Container (حاوية Flex):** هو العنصر الأب الذي يحتوي على العناصر المرنة (Flex Items). لتحديد عنصر كحاوية Flex، استخدم الخاصية `display: flex;` أو `display: inline-flex;`. الفرق بينهما يكمن في سلوك الحاوية نفسها (block-level أو inline-level).
- **Flex Items (عناصر Flex):** هي العناصر المباشرة التابعة لحاوية Flex. هذه العناصر تخضع لقواعد Flexbox.
- **Main Axis (المحور الرئيسي):** هو المحور الذي يتم على طوله ترتيب عناصر Flex. بشكل افتراضي، يكون المحور الرئيسي أفقيًا (من اليسار إلى اليمين). يمكن تغيير اتجاهه باستخدام الخاصية `flex-direction`.
- **Cross Axis (المحور الثانوي):** هو المحور العمودي على المحور الرئيسي.
- **justify-content:** تحدد كيفية توزيع عناصر Flex على طول المحور الرئيسي. الخيارات تشمل: `flex-start`، `flex-end`، `center`، `space-between`، `space-around`، و `space-evenly`.
- **align-items:** تحدد كيفية مواءمة عناصر Flex على طول المحور الثانوي. الخيارات تشمل: `flex-start`، `flex-end`، `center`، `baseline`، و `stretch`.
- **flex-direction:** تحدد اتجاه المحور الرئيسي. الخيارات تشمل: `row` (افتراضي)، `row-reverse`، `column`، و `column-reverse`.
- **flex-wrap:** تحدد ما إذا كان يجب على عناصر Flex الالتفاف إلى سطر جديد إذا تجاوزت عرض الحاوية. الخيارات تشمل: `nowrap` (افتراضي)، `wrap`، و `wrap-reverse`.
خصائص Flex Items
بالإضافة إلى خصائص الحاوية، يمكن تطبيق خصائص على عناصر Flex الفردية للتحكم في سلوكها:
- **order:** يحدد ترتيب عرض عنصر Flex داخل الحاوية.
- **flex-grow:** يحدد مقدار المساحة الإضافية التي يجب أن يشغلها عنصر Flex بالنسبة لعناصر Flex الأخرى في الحاوية.
- **flex-shrink:** يحدد مقدار المساحة التي يجب أن يتقلص بها عنصر Flex إذا تجاوزت الحاوية عرضها.
- **flex-basis:** يحدد الحجم الأولي لعنصر Flex قبل توزيع المساحة المتاحة.
- **align-self:** يسمح لك بتجاوز قيمة `align-items` الخاصة بالحاوية لعنصر Flex معين.
مثال عملي
لننظر إلى مثال بسيط:
```css .container {
display: flex; justify-content: center; align-items: center; height: 200px; background-color: #f0f0f0;
}
.item {
width: 100px; height: 50px; background-color: #3498db; color: white; text-align: center;
} ```
هذا الكود سيُنشئ حاوية Flex تحتوي على ثلاثة عناصر، مُمركزة أفقيًا ورأسيًا داخل الحاوية.
Flexbox والتجاوبية (Responsiveness)
Flexbox هو أداة قوية لإنشاء تصميمات متجاوبة. باستخدام `flex-wrap` و `flex-grow` و `flex-shrink`، يمكنك التأكد من أن تخطيطك يتكيف مع أحجام الشاشات المختلفة. على سبيل المثال، يمكنك جعل عناصر Flex تلتف إلى سطر جديد على الشاشات الصغيرة، أو جعلها تشغل المساحة المتاحة بالتساوي على الشاشات الكبيرة.
الموارد الإضافية
- CSS-Tricks Flexbox Complete Guide: المصدر الرئيسي لهذا المقال.
- Flexbox Froggy: لعبة تفاعلية لتعلم Flexbox.
- Flexbox Zombies: لعبة أخرى لتعلم Flexbox من خلال التحديات.
- Can I use Flexbox: تحقق من دعم المتصفحات لـ Flexbox.
- CSS Grid Layout: بديل لـ Flexbox للتخطيطات ثنائية الأبعاد.
- Responsive Web Design: مبادئ التصميم المتجاوب.
- Media Queries: استخدام الاستعلامات الإعلامية لتصميمات متجاوبة.
استراتيجيات تداول الخيارات الثنائية ذات الصلة (للمقارنة والتطبيق المفاهيمي)
على الرغم من أن Flexbox يتعلق بتطوير الويب، يمكننا استخلاص بعض أوجه التشابه المفاهيمية مع استراتيجيات تداول الخيارات الثنائية:
- استراتيجية مارتينجال: مثل `flex-grow`، تهدف إلى زيادة المكاسب بناءً على ظروف معينة.
- استراتيجية المضاعفة: مشابهة لـ `flex-shrink`، حيث يتم تعديل الحجم بناءً على الظروف.
- تحليل الاتجاه: مثل تحديد `flex-direction`، يساعد في تحديد الاتجاه السائد.
- استراتيجية الاختراق: مثل `flex-wrap`، تتطلب تحديد متى يجب "الالتفاف" أو تغيير الاستراتيجية.
- استراتيجية التداول العكسي: مثل `flex-reverse`، تغيير الاتجاه بناءً على إشارات معينة.
- تحليل فيبوناتشي: يمكن استخدامه لتحديد نسب التوزيع، على غرار `flex-basis`.
- استراتيجية البولينجر باند: تساعد في تحديد حدود التذبذب، على غرار `align-items`.
- استراتيجية المتوسطات المتحركة: تساعد في تحديد الاتجاهات، على غرار `flex-direction`.
- تحليل الشموع اليابانية: يمكن أن يوفر إشارات حول اتجاه التوزيع، على غرار `justify-content`.
- استراتيجية ستوكاستيك: تساعد في تحديد نقاط التشبع، على غرار `flex-grow` و `flex-shrink`.
- استراتيجية مؤشر القوة النسبية (RSI): تساعد في تحديد قوة الاتجاه، على غرار `flex-direction`.
- تحليل حجم التداول: يساعد في تأكيد قوة الاتجاه، على غرار `flex-basis`.
- استراتيجية التداول بناءً على الأخبار: تتطلب تغيير التخطيط بسرعة، على غرار `flex-wrap`.
- استراتيجية التداول اللحظي: تتطلب استجابة سريعة، على غرار `align-self`.
- استراتيجية التداول الخوارزمي: يمكن استخدامها لأتمتة تخطيطات Flexbox باستخدام JavaScript.
الخلاصة
Flexbox هو أداة لا غنى عنها لأي مطور ويب. من خلال فهم المفاهيم الأساسية والخصائص المختلفة، يمكنك إنشاء تخطيطات مرنة ومتجاوبة بسهولة وكفاءة. تذكر أن الممارسة هي المفتاح لإتقان Flexbox. استكشف الأمثلة، وجرب الخصائص المختلفة، وستجد قريبًا أن Flexbox هو صديقك الجديد في عالم تطوير الويب.
ابدأ التداول الآن
سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين