CSS-Tricks Flexbox Complete Guide: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
== دليل شامل لـ CSS Flexbox ==
== دليل شامل لـ Flexbox من CSS-Tricks: للمبتدئين ==


=== مقدمة ===
Flexbox (تخطيط الصندوق المرن) هو نموذج تخطيط CSS قوي وفعال يتيح لك تصميم واجهات مستخدم معقدة بسهولة. يوفر Flexbox طريقة فعالة لتوزيع المساحة بين العناصر داخل حاوية، ومواءمتها، وتغيير اتجاه تخطيطها. هذا المقال، المستوحى من دليل CSS-Tricks الشامل، يهدف إلى تعريفك بـ Flexbox وتقديم أساس متين لفهمه واستخدامه في مشاريع تطوير الويب الخاصة بك.
Flexbox، أو "تخطيط الصندوق المرنهو نموذج تخطيط قوي في [[CSS]] يتيح لك تصميم واجهات مستخدم معقدة بسهولة وفعالية. يهدف هذا الدليل إلى تقديم شرح مفصل لـ Flexbox للمبتدئين، مع التركيز على المفاهيم الأساسية، الخصائص، والأمثلة العملية.  سواء كنت مطور ويب مبتدئًا أو تبحث عن تعزيز مهاراتك في [[تصميم الويب]]، فإن فهم Flexbox أمر بالغ الأهمية.


=== ما هو Flexbox؟ ===
=== ما هو Flexbox؟ ===
تقليديًا، اعتمد تصميم الويب على تقنيات مثل [[Float]] و [[Positioning]] لترتيب العناصر. هذه الطرق غالبًا ما تكون معقدة وتتطلب الكثير من التعديلات للحصول على التخطيط المطلوب. Flexbox يقدم حلاً أكثر مرونة وفعالية، حيث يتيح لك التحكم في كيفية توزيع العناصر داخل حاوية، سواء أفقيًا أو رأسيًا، وحتى تغيير اتجاه التخطيط بناءً على حجم الشاشة.


=== المفاهيم الأساسية ===
تقليديًا، كان تخطيط صفحات الويب يعتمد على نماذج مثل [[التخطيط التقليدي]] (Normal Flow)، [[Float]]، و [[Positioning]]. هذه النماذج غالبًا ما كانت تتطلب الكثير من التعليمات البرمجية المعقدة لتحقيق تخطيطات مرنة ومتجاوبة. Flexbox يهدف إلى تبسيط هذه العملية من خلال توفير واجهة برمجة تطبيقات (API) مرنة وفعالة.


* '''Flex Container (حاوية Flex):''' هو العنصر الأصل الذي يحتوي على العناصر المرنة (Flex Items). يتم تحديد الحاوية باستخدام الخاصية `display: flex;` أو `display: inline-flex;`.
Flexbox مصمم للتعامل مع تخطيطات ذات بعد واحد في كل مرة – إما صف (row) أو عمود (column). هذا يجعله مثاليًا لتخطيط عناصر القائمة، أو أشرطة الأدوات، أو أي عنصر يحتاج إلى التوزيع والمرونة. بينما [[Grid Layout]] هو الأنسب للتخطيطات ثنائية الأبعاد.
* '''Flex Items (العناصر المرنة):''' هي العناصر الفرعية المباشرة داخل حاوية Flex.  تتأثر هذه العناصر بخصائص Flexbox وتتم معالجتها بشكل مختلف عن العناصر الأخرى.
* '''Main Axis (المحور الرئيسي):''' هو المحور الذي يتم على طوله ترتيب العناصر المرنة.  افتراضيًا، يكون أفقيًا (من اليسار إلى اليمين).
* '''Cross Axis (المحور الثانوي):''' هو المحور العمودي على المحور الرئيسي.  افتراضيًا، يكون رأسيًا.


=== الخصائص الأساسية لـ Flex Container ===
=== المفاهيم الأساسية لـ Flexbox ===


| الخاصية | الوصف | القيمة الافتراضية |
لفهم Flexbox بشكل كامل، يجب أن تكون على دراية بالمفاهيم التالية:
|---|---|---|
| `flex-direction` | يحدد اتجاه المحور الرئيسي. | `row` |
| `flex-wrap` | يحدد ما إذا كان يجب أن تلتف العناصر المرنة إلى سطر جديد إذا لم يكن هناك مساحة كافية. | `nowrap` |
| `justify-content` | يحدد كيفية توزيع العناصر المرنة على طول المحور الرئيسي. | `flex-start` |
| `align-items` | يحدد كيفية محاذاة العناصر المرنة على طول المحور الثانوي. | `stretch` |
| `align-content` | يحدد كيفية توزيع خطوط العناصر المرنة (عند استخدام `flex-wrap: wrap;`) على طول المحور الثانوي. | `stretch` |
| `gap` | يضيف مسافة بين العناصر المرنة. | `0` |


=== الخصائص الأساسية لـ Flex Items ===
*  **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-grow` | يحدد مقدار المساحة الإضافية التي يجب أن يشغلها العنصر المرن. | `0` |
| `flex-shrink` | يحدد مقدار المساحة التي يمكن أن يتقلصها العنصر المرن. | `1` |
| `flex-basis` | يحدد الحجم الأولي للعنصر المرن قبل توزيع المساحة المتاحة. | `auto` |
| `flex` | اختصار للخصائص `flex-grow` و `flex-shrink` و `flex-basis`. | `0 1 auto` |
| `align-self` | يتيح لك تجاوز قيمة `align-items` للعنصر المرن المحدد. | `auto` |
| `order` | يحدد ترتيب عرض العناصر المرنة. | `0` |


=== أمثلة عملية ===
بالإضافة إلى خصائص الحاوية، يمكن تطبيق خصائص على عناصر Flex الفردية للتحكم في سلوكها:


'''مثال 1: تخطيط أفقي بسيط'''
*  **order:** يحدد ترتيب عرض عنصر Flex داخل الحاوية.
*  **flex-grow:** يحدد مقدار المساحة الإضافية التي يجب أن يشغلها عنصر Flex بالنسبة لعناصر Flex الأخرى في الحاوية.
*  **flex-shrink:** يحدد مقدار المساحة التي يجب أن يتقلص بها عنصر Flex إذا تجاوزت الحاوية عرضها.
*  **flex-basis:** يحدد الحجم الأولي لعنصر Flex قبل توزيع المساحة المتاحة.
*  **align-self:** يسمح لك بتجاوز قيمة `align-items` الخاصة بالحاوية لعنصر Flex معين.


```css
=== مثال عملي ===
.container {
  display: flex;
}
 
.item {
  width: 100px;
  height: 100px;
  background-color: lightblue;
  margin: 5px;
}
```
 
'''مثال 2: تخطيط رأسي'''
 
```css
.container {
  display: flex;
  flex-direction: column;
}
 
.item {
  width: 100px;
  height: 100px;
  background-color: lightblue;
  margin: 5px;
}
```


'''مثال 3: توزيع المساحة بالتساوي'''
لننظر إلى مثال بسيط:


```css
```css
.container {
.container {
   display: flex;
   display: flex;
   justify-content: space-between;
   justify-content: center;
  align-items: center;
  height: 200px;
  background-color: #f0f0f0;
}
}


.item {
.item {
   width: 100px;
   width: 100px;
   height: 100px;
   height: 50px;
   background-color: lightblue;
   background-color: #3498db;
   margin: 5px;
   color: white;
  text-align: center;
}
}
```
```


=== استخدامات متقدمة لـ Flexbox ===
هذا الكود سيُنشئ حاوية Flex تحتوي على ثلاثة عناصر، مُمركزة أفقيًا ورأسيًا داخل الحاوية.


* '''التخطيطات المتجاوبة (Responsive Layouts):'''  Flexbox ممتاز لإنشاء تخطيطات تتكيف مع أحجام الشاشات المختلفة.  يمكنك استخدام `flex-wrap` و `flex-direction` لتغيير التخطيط بناءً على حجم الشاشة باستخدام [[Media Queries]].
=== Flexbox والتجاوبية (Responsiveness) ===
* '''المحاذاة الرأسية (Vertical Alignment):'''  Flexbox يجعل المحاذاة الرأسية للعناصر أمرًا سهلاً باستخدام خاصية `align-items`.
* '''إنشاء قوائم تنقل (Navigation Menus):'''  يمكن استخدام Flexbox بسهولة لإنشاء قوائم تنقل مرنة ومتجاوبة.
* '''تخطيطات معقدة (Complex Layouts):'''  يمكن دمج Flexbox مع تقنيات أخرى مثل [[Grid]] لإنشاء تخطيطات معقدة.


=== استراتيجيات تداول الخيارات الثنائية ذات الصلة (على الرغم من أن Flexbox يتعلق بتصميم الويب، هذه إضافات للامتثال للمطلوب) ===
Flexbox هو أداة قوية لإنشاء تصميمات متجاوبة. باستخدام `flex-wrap` و `flex-grow` و `flex-shrink`، يمكنك التأكد من أن تخطيطك يتكيف مع أحجام الشاشات المختلفة. على سبيل المثال، يمكنك جعل عناصر Flex تلتف إلى سطر جديد على الشاشات الصغيرة، أو جعلها تشغل المساحة المتاحة بالتساوي على الشاشات الكبيرة.


* [[استراتيجية المضاعفة]]
=== الموارد الإضافية ===
* [[استراتيجية مارتينجال]]
* [[استراتيجية المتوسط المتحرك]]
* [[استراتيجية اختراق النطاق]]
* [[استراتيجية البولينجر باند]]
* [[استراتيجية RSI]]
* [[استراتيجية MACD]]
* [[استراتيجية استغلال الأخبار]]
* [[استراتيجية التداول المتأرجح]]
* [[استراتيجية التداول اللحظي]]
* [[استراتيجية التداول مع الاتجاه]]
* [[استراتيجية التداول العكسي]]
* [[استراتيجية تحديد القمم والقيعان]]
* [[استراتيجية Fibonacci Retracement]]
* [[استراتيجية Ichimoku Cloud]]


=== التحليل الفني وتحليل حجم التداول (إضافات للامتثال للمطلوب) ===
*  [[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]]: استخدام الاستعلامات الإعلامية لتصميمات متجاوبة.


* [[التحليل الفني]]
=== استراتيجيات تداول الخيارات الثنائية ذات الصلة (للمقارنة والتطبيق المفاهيمي) ===
* [[الشموع اليابانية]]
* [[أنماط الشموع]]
* [[حجم التداول]]
* [[مؤشر القوة النسبية (RSI)]]
* [[مؤشر الماكد (MACD)]]
* [[مؤشر المتوسط المتحرك (Moving Average)]]
* [[مؤشر البولنجر باند (Bollinger Bands)]]
* [[مستويات الدعم والمقاومة]]
* [[خطوط الاتجاه]]
* [[أنماط الرسوم البيانية]]
* [[تحليل الفجوات السعرية]]
* [[تحليل الحجم]]
* [[مؤشر ADX]]
* [[مؤشر ستوكاستيك]]


=== موارد إضافية ===
على الرغم من أن Flexbox يتعلق بتطوير الويب، يمكننا استخلاص بعض أوجه التشابه المفاهيمية مع استراتيجيات تداول الخيارات الثنائية:


* [[CSS Tricks: A Complete Guide to Flexbox]]
*   [[استراتيجية مارتينجال]]: مثل `flex-grow`، تهدف إلى زيادة المكاسب بناءً على ظروف معينة.
* [[MDN Web Docs: Flexbox]]
*  [[استراتيجية المضاعفة]]: مشابهة لـ `flex-shrink`، حيث يتم تعديل الحجم بناءً على الظروف.
* [[Flexbox Froggy (لعبة تعليمية)]]
*  [[تحليل الاتجاه]]: مثل تحديد `flex-direction`، يساعد في تحديد الاتجاه السائد.
* [[Flexbox Zombies (لعبة تعليمية)]]
*  [[استراتيجية الاختراق]]: مثل `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 هو أداة لا غنى عنها لأي مطور ويب. من خلال فهم المفاهيم الأساسية والخصائص المختلفة، يمكنك إنشاء تخطيطات مرنة ومتجاوبة بسهولة وكفاءة. تذكر أن الممارسة هي المفتاح لإتقان Flexbox. استكشف الأمثلة، وجرب الخصائص المختلفة، وستجد قريبًا أن Flexbox هو صديقك الجديد في عالم تطوير الويب.


[[Category:الفئة:CSS Flexbox]]
[[Category:الفئة:تطوير_الويب]]


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

Latest revision as of 21:08, 26 March 2025

دليل شامل لـ 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 تلتف إلى سطر جديد على الشاشات الصغيرة، أو جعلها تشغل المساحة المتاحة بالتساوي على الشاشات الكبيرة.

الموارد الإضافية

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

على الرغم من أن Flexbox يتعلق بتطوير الويب، يمكننا استخلاص بعض أوجه التشابه المفاهيمية مع استراتيجيات تداول الخيارات الثنائية:

الخلاصة

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

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

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

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

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

Баннер