MDN Web Docs - Flexbox
```wiki
Flexbox: دليل شامل للمبتدئين
Flexbox (اختصار لـ Flexible Box Layout) هو نموذج تخطيط قوي وفعال في CSS يسمح لك بتصميم واجهات مستخدم مرنة ومتجاوبة بسهولة. يتيح لك Flexbox ترتيب العناصر، وتوزيع المساحات بينها، ومحاذاة المحتوى داخل الحاويات، كل ذلك بمرونة عالية، مما يجعله أداة أساسية لتطوير مواقع الويب الحديثة. هذا المقال موجه للمبتدئين ويهدف إلى شرح مفاهيم Flexbox بالتفصيل مع أمثلة عملية.
لماذا نستخدم Flexbox؟
قبل Flexbox، كان المطورون يعتمدون بشكل كبير على Float وPositioning لإنشاء التخطيطات. هذه الطرق كانت غالبًا معقدة، وتتطلب الكثير من الحيل لتجنب المشاكل المتعلقة بالانهيار والتداخل. Flexbox يقدم حلاً أكثر بساطة ومرونة، حيث يتيح لك التحكم الكامل في كيفية ترتيب العناصر وتوزيعها داخل الحاوية.
- سهولة الاستخدام: Flexbox أبسط وأكثر وضوحًا من الطرق التقليدية.
- المرونة: يتكيف Flexbox مع أحجام الشاشات المختلفة والتغيرات في المحتوى.
- التحكم الدقيق: يمنحك Flexbox تحكمًا دقيقًا في ترتيب العناصر ومحاذاتها.
- التجاوبية: Flexbox مثالي لإنشاء تصميمات متجاوبة تتكيف مع مختلف الأجهزة.
المفاهيم الأساسية في Flexbox
لفهم Flexbox، يجب أن تعرف بعض المفاهيم الأساسية:
- Flex Container: الحاوية التي تحتوي على العناصر المرنة (Flex Items). يتم تعريف الحاوية باستخدام خاصية `display: flex;` أو `display: inline-flex;`.
- Flex Items: العناصر الموجودة داخل الحاوية المرنة.
- Main Axis: المحور الرئيسي الذي يتم ترتيب العناصر المرنة عليه. افتراضيًا، يكون أفقيًا.
- Cross Axis: المحور الثانوي الذي يكون عموديًا على المحور الرئيسي.
- Main Start/End: بداية ونهاية المحور الرئيسي.
- Cross Start/End: بداية ونهاية المحور الثانوي.
تعريف الحاوية المرنة
لتحويل عنصر إلى حاوية مرنة، استخدم خاصية `display: flex;` أو `display: inline-flex;`. الفرق بينهما هو أن `display: flex;` يخلق حاوية على مستوى الكتلة (block-level)، بينما `display: inline-flex;` يخلق حاوية على مستوى السطر (inline-level).
مثال:
```css .container {
display: flex;
} ```
خصائص الحاوية المرنة
هناك العديد من الخصائص التي يمكنك استخدامها للتحكم في سلوك الحاوية المرنة. بعض الخصائص الأكثر شيوعًا هي:
- 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: يحدد كيفية محاذاة العناصر المرنة على طول المحور الثانوي. القيم المتاحة هي:
* `stretch` (افتراضي): العناصر تمتد لملء الحاوية على طول المحور الثانوي. * `flex-start`: العناصر محاذية إلى بداية المحور الثانوي. * `flex-end`: العناصر محاذية إلى نهاية المحور الثانوي. * `center`: العناصر محاذية إلى مركز المحور الثانوي. * `baseline`: العناصر محاذية بناءً على خط الأساس الخاص بها.
- align-content: يحدد كيفية توزيع الأسطر في حاوية متعددة الأسطر على طول المحور الثانوي. القيم المتاحة هي مشابهة لـ `justify-content`.
خصائص العناصر المرنة
بالإضافة إلى خصائص الحاوية المرنة، هناك أيضًا العديد من الخصائص التي يمكنك استخدامها للتحكم في سلوك العناصر المرنة:
- order: يحدد ترتيب العناصر المرنة داخل الحاوية.
- flex-grow: يحدد مقدار المساحة الإضافية التي يجب أن يشغلها العنصر المرن إذا كانت هناك مساحة فارغة في الحاوية.
- flex-shrink: يحدد مقدار المساحة التي يجب أن يتقلص بها العنصر المرن إذا لم تكن هناك مساحة كافية في الحاوية.
- flex-basis: يحدد الحجم الأولي للعنصر المرن.
- align-self: يحدد كيفية محاذاة العنصر المرن على طول المحور الثانوي.
أمثلة عملية
مثال 1: ترتيب العناصر أفقيًا مع توزيع متساوٍ للمساحة
```html
```
```css .container {
display: flex; justify-content: space-around;
} ```
مثال 2: ترتيب العناصر عموديًا مع محاذاة إلى المركز
```html
```
```css .container {
display: flex; flex-direction: column; align-items: center;
} ```
مثال 3: إنشاء قائمة تنقل مرنة
```html <nav class="navbar">
<a href="#">الرئيسية</a> <a href="#">حول</a> <a href="#">خدمات</a> <a href="#">اتصل بنا</a>
</nav> ```
```css .navbar {
display: flex; justify-content: space-between; align-items: center; background-color: #f2f2f2; padding: 10px;
} ```
Flexbox و الخيارات الثنائية: تحليل التوجهات
على الرغم من أن Flexbox هو مفهوم متعلق بتطوير الويب، إلا أن هناك أوجه تشابه يمكن استخلاصها مع عالم الخيارات الثنائية وتحليل التوجهات أو التحليل الفني. تمامًا كما يسمح Flexbox بتوزيع المساحة والمرونة في تصميم الويب، فإن تحليل التوجهات في الخيارات الثنائية يسمح بتوزيع رأس المال وإدارة المخاطر بمرونة.
- إدارة المخاطر (Risk Management): يمكن مقارنة `flex-shrink` بتقليل حجم الاستثمار في صفقة خيار ثنائي عندما تكون هناك إشارات إلى اتجاه معاكس.
- توزيع رأس المال (Capital Allocation): `flex-grow` يمكن تشبيهه بزيادة حجم الاستثمار في صفقة خيار ثنائي عندما تكون هناك إشارات قوية إلى اتجاه إيجابي.
- تحديد الأهداف (Target Setting): `flex-basis` يمكن تشبيهه بتحديد نقطة دخول أو خروج محددة في صفقة خيار ثنائي بناءً على التحليل الفني.
- استراتيجيات الخيارات الثنائية (Binary Options Strategies): مثل استراتيجية التداول مع الاتجاه (Trend Following)، حيث يتم التداول في اتجاه السوق السائد، يمكن مقارنتها بـ `flex-direction` الذي يحدد اتجاه الترتيب في Flexbox.
- مؤشرات التحليل الفني (Technical Indicators): مثل مؤشر المتوسط المتحرك (Moving Average)، يمكن استخدامه لتحديد اتجاه السوق، تمامًا كما يتم استخدام `justify-content` لتحديد كيفية توزيع العناصر في Flexbox.
- تحليل حجم التداول (Volume Analysis): يمكن أن يساعد في تحديد قوة الاتجاه، تمامًا كما يمكن أن يساعد `flex-grow` في تحديد مقدار المساحة التي يجب أن يشغلها العنصر.
- استراتيجية مارتينجال (Martingale Strategy): تعتمد على مضاعفة الاستثمار بعد كل خسارة، وهي استراتيجية عالية المخاطر، تمامًا مثل استخدام `flex-grow` بقيم عالية جدًا قد يؤدي إلى نتائج غير متوقعة.
- استراتيجية دالالا (D'Alembert Strategy): تعتمد على زيادة أو تقليل الاستثمار بمقدار ثابت بعد كل خسارة أو ربح، وهي استراتيجية أكثر تحفظًا، تمامًا مثل استخدام `flex-shrink` بقيم صغيرة للحد من التقلبات.
- استراتيجية فيبوناتشي (Fibonacci Strategy): تعتمد على مستويات فيبوناتشي لتحديد نقاط الدخول والخروج، وهي استراتيجية تعتمد على التحليل الفني، تمامًا كما يعتمد Flexbox على خصائص CSS لتحديد التخطيط.
- استراتيجية الاختراق (Breakout Strategy): تعتمد على تحديد نقاط الاختراق في الأسعار للدخول في صفقات، وهي استراتيجية تتطلب مراقبة دقيقة للسوق، تمامًا كما يتطلب Flexbox فهمًا جيدًا لخصائصه.
- استراتيجية التداول المتأرجح (Swing Trading Strategy): تعتمد على الاستفادة من تقلبات الأسعار قصيرة الأجل، وهي استراتيجية تتطلب صبرًا وتحليلًا دقيقًا، تمامًا كما يتطلب Flexbox تخطيطًا دقيقًا.
- استراتيجية التداول اليومي (Day Trading Strategy): تعتمد على إغلاق الصفقات في نفس اليوم، وهي استراتيجية عالية المخاطر وتتطلب سرعة بديهة، تمامًا كما يتطلب Flexbox فهمًا سريعًا لخصائصه.
موارد إضافية
- MDN Web Docs - Flexbox: [[1]]
- CSS-Tricks - A Complete Guide to Flexbox: [[2]]
- Flexbox Froggy: [[3]] (لعبة تعليمية)
- Flexbox Zombies: [[4]] (لعبة تعليمية)
- Can I use Flexbox: [[5]] (للتحقق من توافق المتصفحات)
روابط داخلية ذات صلة
- CSS
- HTML
- Float
- Positioning
- Responsive Web Design
- CSS Grid
- Web Development
- User Interface (UI)
- User Experience (UX)
- Cascading Style Sheets
خاتمة
Flexbox هو أداة قوية ومرنة يمكن أن تساعدك في إنشاء واجهات مستخدم حديثة ومتجاوبة بسهولة. من خلال فهم المفاهيم الأساسية والخصائص المختلفة، يمكنك التحكم الكامل في كيفية ترتيب العناصر وتوزيعها داخل الحاوية. مع الممارسة والتجريب، ستصبح Flexbox جزءًا أساسيًا من مجموعة أدوات تطوير الويب الخاصة بك. ```
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين