Flex Item
- Flex Item: دليل شامل للمبتدئين
مقدمة
في عالم تصميم الويب الحديث، يعد إنشاء تخطيطات مرنة ومتجاوبة أمرًا بالغ الأهمية لضمان تجربة مستخدم مثالية عبر مختلف الأجهزة والشاشات. يوفر نموذج CSS Flexible Box Layout، المعروف اختصارًا بـ Flexbox، أداة قوية وفعالة لتحقيق ذلك. هذا المقال يهدف إلى تقديم شرح مفصل لـ "Flex Item"، وهو المكون الأساسي في Flexbox، مع التركيز على كيفية استخدامه والتحكم فيه لتحقيق تخطيطات ويب متقدمة. سنغطي المفاهيم الأساسية، الخصائص الهامة، وأمثلة عملية لمساعدتك على فهم واستخدام Flex Items بفعالية. سيكون هذا الدليل مفيدًا بشكل خاص للمطورين الجدد في Flexbox والراغبين في تعزيز مهاراتهم في تخطيط_CSS.
ما هو Flex Item؟
عندما ننشئ حاوية Flexbox باستخدام `display: flex` أو `display: inline-flex`، فإن العناصر الفرعية المباشرة لتلك الحاوية تصبح ما يعرف بـ "Flex Items". ببساطة، هي العناصر التي يتم التحكم في تخطيطها وتوزيعها داخل حاوية Flexbox. هذه العناصر لا تلتزم بالقواعد التقليدية لتخطيط CSS_box_model، بل تخضع لقواعد Flexbox.
إنشاء حاوية Flexbox و Flex Items
لإنشاء حاوية Flexbox، نستخدم خاصية `display` على العنصر الحاوي:
```css .container {
display: flex; /* أو display: inline-flex */
} ```
الآن، أي عنصر فرعي مباشر للعنصر ذي الفئة `.container` سيصبح Flex Item. على سبيل المثال:
```html
```
في هذا المثال، كل من العناصر `
خصائص Flex Item الأساسية
تتيح لنا مجموعة من خصائص CSS التحكم في سلوك وتخطيط Flex Items. أهم هذه الخصائص تشمل:
- **`order`**: تحدد ترتيب ظهور Flex Item داخل الحاوية. القيمة الافتراضية هي 0. يمكن استخدام قيم سالبة لتغيير الترتيب.
- **`flex-grow`**: تحدد مقدار المساحة الإضافية التي يجب أن يشغلها Flex Item داخل الحاوية إذا كانت هناك مساحة فائضة. القيمة الافتراضية هي 0 (لا ينمو).
- **`flex-shrink`**: تحدد مقدار المساحة التي يجب أن يتقلصها Flex Item داخل الحاوية إذا كانت المساحة غير كافية. القيمة الافتراضية هي 1 (يتقلص).
- **`flex-basis`**: تحدد الحجم الأولي لـ Flex Item قبل توزيع المساحة المتاحة. يمكن أن تكون قيمة طول (مثل `px` أو `em`) أو `auto` (الحجم بناءً على المحتوى).
- **`flex`**: خاصية مختصرة تجمع بين `flex-grow` و `flex-shrink` و `flex-basis`. تُكتب بالترتيب `flex-grow flex-shrink flex-basis`. مثلًا، `flex: 1 1 auto` يكافئ `flex-grow: 1; flex-shrink: 1; flex-basis: auto;`.
- **`align-items`**: (تُطبق على الحاوية، ولكنها تؤثر على Flex Items) تحدد كيفية محاذاة Flex Items على المحور العرضي (cross axis).
- **`justify-content`**: (تُطبق على الحاوية، ولكنها تؤثر على Flex Items) تحدد كيفية توزيع Flex Items على المحور الرئيسي (main axis).
- **`align-self`**: تسمح بتجاوز قيمة `align-items` المحددة على الحاوية لـ Flex Item معين.
شرح مفصل للخصائص
- **`order`**: تخيل أن لديك ثلاثة Flex Items. إذا قمت بتعيين `order: 1` للعنصر الأول، و `order: 2` للعنصر الثاني، و `order: 0` للعنصر الثالث، فسيظهر العنصر الثالث أولاً، ثم العنصر الأول، ثم العنصر الثاني. هذا مفيد لإعادة ترتيب العناصر بصريًا دون تغيير ترتيبها في كود HTML.
- **`flex-grow`**: إذا كانت المساحة المتاحة في الحاوية أكبر من مجموع أحجام Flex Items، فإن `flex-grow` يحدد كيف تتوزع هذه المساحة الإضافية بين العناصر. إذا كان لديك عنصران، وكل منهما لديه `flex-grow: 1`، فسيتم توزيع المساحة الإضافية بالتساوي بينهما. إذا كان العنصر الأول لديه `flex-grow: 2` والعنصر الثاني لديه `flex-grow: 1`، فسيحصل العنصر الأول على ضعف المساحة الإضافية التي يحصل عليها العنصر الثاني.
- **`flex-shrink`**: إذا كانت المساحة المتاحة في الحاوية أصغر من مجموع أحجام Flex Items، فإن `flex-shrink` يحدد كيف يتم تقليص حجم العناصر لتناسب المساحة المتاحة. إذا كان لديك عنصران، وكل منهما لديه `flex-shrink: 1`، فسيتم تقليص حجمهما بالتساوي. إذا كان العنصر الأول لديه `flex-shrink: 2` والعنصر الثاني لديه `flex-shrink: 1`، فسيتم تقليص حجم العنصر الأول بمقدار ضعف المعدل الذي يتم به تقليص حجم العنصر الثاني.
- **`flex-basis`**: تحدد الحجم الأولي لـ Flex Item. إذا كانت القيمة `auto`، فإن الحجم سيُحدد بناءً على محتوى العنصر. إذا كانت قيمة طول، فسيتم استخدامها كحجم أولي. هذه الخاصية مهمة في تحديد كيفية توزيع المساحة المتاحة بين العناصر.
- **`flex`**: تعتبر هذه الخاصية المختصرة طريقة سهلة لتعيين قيم `flex-grow` و `flex-shrink` و `flex-basis` في سطر واحد. على سبيل المثال، `flex: 1` يكافئ `flex: 1 1 0%` (ينمو ويتقلص ويأخذ حجمًا أوليًا بنسبة 0%). `flex: 0 1 auto` يكافئ `flex: 0 1 auto` (لا ينمو، يتقلص، ويأخذ حجمًا أوليًا بناءً على المحتوى).
محاذاة Flex Items
تتيح لنا خصائص `align-items` و `align-content` و `justify-content` التحكم في كيفية محاذاة Flex Items داخل الحاوية.
- **`align-items`**: تحدد كيفية محاذاة Flex Items على المحور العرضي. القيم المتاحة تشمل `stretch` (يمتد ليملأ الحاوية)، `flex-start` (محاذاة إلى بداية المحور العرضي)، `flex-end` (محاذاة إلى نهاية المحور العرضي)، `center` (محاذاة إلى المنتصف)، و `baseline` (محاذاة بناءً على خط الأساس للنص).
- **`justify-content`**: تحدد كيفية توزيع Flex Items على المحور الرئيسي. القيم المتاحة تشمل `flex-start` (محاذاة إلى بداية المحور الرئيسي)، `flex-end` (محاذاة إلى نهاية المحور الرئيسي)، `center` (محاذاة إلى المنتصف)، `space-between` (توزيع العناصر بحيث يكون هناك مساحة متساوية بينها، مع وجود مساحة فارغة في البداية والنهاية)، `space-around` (توزيع العناصر بحيث يكون هناك مساحة متساوية حول كل عنصر)، و `space-evenly` (توزيع العناصر بحيث تكون المساحات بينها متساوية تمامًا).
- **`align-self`**: تسمح بتجاوز خاصية `align-items` لعنصر واحد فقط.
أمثلة عملية
- **توزيع متساوٍ للمساحة**:
```html
```
```css .container {
display: flex;
}
.container div {
flex: 1; /* يوزع المساحة بالتساوي بين العناصر الثلاثة */
} ```
- **تخطيط عمودي**:
```html
```
```css .container {
display: flex; flex-direction: column; /* يجعل المحور الرئيسي عموديًا */
} ```
- **محاذاة العناصر إلى اليمين**:
```html
```
```css .container {
display: flex; justify-content: flex-end; /* محاذاة العناصر إلى نهاية المحور الرئيسي (اليمين) */
} ```
الفرق بين Flexbox و Grid Layout
على الرغم من أن كلاً من Flexbox و CSS_Grid_Layout يستخدمان لإنشاء تخطيطات معقدة، إلا أنهما يختلفان في أسلوب عملهما. Flexbox مصمم للتخطيط أحادي البعد (إما صف أو عمود)، بينما Grid Layout مصمم للتخطيط ثنائي البعد (صفوف وأعمدة). Flexbox مثالي لتخطيط عناصر داخل صف واحد أو عمود واحد، بينما Grid Layout مثالي لتخطيط تخطيطات معقدة تتطلب تحكمًا دقيقًا في الصفوف والأعمدة.
الخلاصة
Flex Items هي اللبنة الأساسية في Flexbox، وهي توفر طريقة قوية ومرنة للتحكم في تخطيط العناصر على صفحات الويب. من خلال فهم الخصائص المختلفة لـ Flex Items وكيفية استخدامها، يمكنك إنشاء تخطيطات ويب متجاوبة وجميلة تلبي احتياجات المستخدمين على جميع الأجهزة. الاستمرار في التدريب والتجربة هو المفتاح لإتقان Flexbox وتحقيق أقصى استفادة من إمكانياته.
روابط ذات صلة
- CSS_Flexible_Box_Layout
- CSS_box_model
- CSS_Grid_Layout
- تخطيط_CSS
- الاستراتيجيات_الثنائية
- التحليل_الفني_للخيارات_الثنائية
- تحليل_حجم_التداول_للخيارات_الثنائية
- مؤشرات_الخيارات_الثنائية
- اتجاهات_سوق_الخيارات_الثنائية
- استراتيجية_60_ثانية
- استراتيجية_Martingale
- استراتيجية_Pin_Bar
- استراتيجية_الشموع_اليابانية
- الخيارات_الثنائية_60_ثانية
- الخيارات_الثنائية_الرقمية
- التحوط_في_الخيارات_الثنائية
- إدارة_المخاطر_في_الخيارات_الثنائية
- التحليل_الأساسي_للخيارات_الثنائية
- التحليل_التقني_للخيارات_الثنائية
- تداول_العملات_الأجنبية_مع_الخيارات_الثنائية
- تداول_السلع_مع_الخيارات_الثنائية
- تداول_الأسهم_مع_الخيارات_الثنائية
- تداول_المؤشرات_مع_الخيارات_الثنائية
- تداول_الأخبار_في_الخيارات_الثنائية
- الوساطة_في_الخيارات_الثنائية
- تنظيم_الخيارات_الثنائية
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين