ما الفرق بين justify-content و align-items في Flexbox؟

تم النشر | بواسطة: Nourhan | Apr 19, 2026 | منذ شهر |
برمجة
| عدد المشاهدات: 1,070
ما الفرق بين justify-content و align-items في Flexbox؟

ما الفرق بين justify-content و align-items في Flexbox؟ دليل عملي شامل لمطوري الويب

تُعد تقنية Flexbox واحدة من أهم الأدوات الحديثة في CSS لبناء واجهات مستخدم مرنة وسريعة الاستجابة. لكن رغم بساطتها الظاهرية، يقع الكثير من المطورين في لبس عند استخدام خصائص المحاذاة، خصوصًا justify-content و align-items.

في هذا المقال، سنوضح الفرق بينهما بشكل عملي وبسيط، مع أمثلة واقعية تساعدك كمطور ويب على استخدامهما بشكل احترافي دون تعقيد.


ما هو Flexbox ولماذا نستخدمه؟

Flexbox هو نظام تخطيط (Layout System) يُستخدم لترتيب العناصر داخل حاوية (Container) بطريقة مرنة.

أهم مميزاته:

  • توزيع العناصر بسهولة
  • التحكم في المحاذاة أفقيًا ورأسيًا
  • تصميم متجاوب بدون تعقيد
  • تقليل الاعتماد على float و positioning

المحور الرئيسي والمحور العرضي في Flexbox

لفهم الفرق بين justify-content و align-items، يجب أولًا فهم مفهومين أساسيين:

المحور الرئيسي (Main Axis)

هو الاتجاه الأساسي الذي تتحرك فيه العناصر داخل الحاوية.

المحور العرضي (Cross Axis)

هو الاتجاه العمودي على المحور الرئيسي.

💡 مهم جدًا:

  • إذا كان الاتجاه row → المحور الرئيسي أفقي
  • إذا كان الاتجاه column → المحور الرئيسي رأسي

ما هي خاصية justify-content؟

تُستخدم خاصية justify-content للتحكم في توزيع العناصر على المحور الرئيسي.

ببساطة:

👉 تتحكم في "المسافات بين العناصر" أفقيًا أو رأسيًا حسب اتجاه الفليكس

أشهر القيم:

  • flex-start → العناصر في بداية الحاوية
  • flex-end → العناصر في نهاية الحاوية
  • center → العناصر في المنتصف
  • space-between → مسافات متساوية بين العناصر
  • space-around → مسافات حول العناصر
  • space-evenly → مسافات متساوية تمامًا

مثال عملي:

تخيل عندك navbar فيه 3 عناصر:

  • لو استخدمت justify-content: space-between
    👉 أول عنصر هيكون في أقصى اليسار، وآخر عنصر في أقصى اليمين، والباقي بينهم.

ما هي خاصية align-items؟

تُستخدم خاصية align-items للتحكم في محاذاة العناصر على المحور العرضي.

ببساطة:

👉 تتحكم في "ارتفاع أو تمركز العناصر" عموديًا أو أفقيًا حسب الاتجاه

أشهر القيم:

  • flex-start → العناصر في أعلى الحاوية
  • flex-end → العناصر في أسفل الحاوية
  • center → العناصر في المنتصف
  • stretch → العناصر تتمدد لملء الحاوية
  • baseline → محاذاة حسب خط النص

مثال عملي:

عندك مجموعة كروت داخل div:

  • باستخدام align-items: center
    👉 كل الكروت هتكون في منتصف الحاوية عموديًا

الفرق بين justify-content و align-items

الفرق الأساسي يعتمد على اتجاه المحور:

الخاصية تتحكم في الاتجاه
justify-content توزيع العناصر المحور الرئيسي
align-items محاذاة العناصر المحور العرضي

جدول مقارنة شامل

الميزة justify-content align-items
نوع التحكم توزيع العناصر محاذاة العناصر
المحور المحور الرئيسي (Main Axis) المحور العرضي (Cross Axis)
يتأثر بـ flex-direction نعم نعم
الاستخدام الشائع عمل مسافات بين العناصر توسيط العناصر عموديًا/أفقيًا
مثال عملي توزيع عناصر navbar توسيط عناصر داخل container

متى تستخدم كل خاصية؟

استخدم justify-content عندما:

  • تريد توزيع العناصر داخل الحاوية
  • تحتاج مسافات متساوية بين العناصر
  • تعمل على navbar أو قائمة أفقية

استخدم align-items عندما:

  • تريد توسيط العناصر عموديًا
  • تريد ضبط ارتفاع العناصر داخل container
  • تعمل على تصميم cards أو sections

أمثلة واقعية من مشاريع حقيقية

1. شريط التنقل (Navbar)

  • استخدم justify-content: space-between
    👉 لتوزيع اللوجو والقائمة

2. توسيط زر داخل قسم

  • استخدم justify-content: center + align-items: center
    👉 لتوسيط الزر أفقيًا وعموديًا

3. تصميم كروت (Cards)

  • استخدم align-items: stretch
    👉 لجعل كل الكروت بنفس الارتفاع

أخطاء شائعة يجب تجنبها

❌ الخلط بين المحورين
✔ الحل: دائمًا اسأل نفسك: "أنا عايز أتحكم في أنهي اتجاه؟"

❌ نسيان flex-direction
✔ لأن الاتجاه يغير المحور بالكامل

❌ استخدام خاصية واحدة بدل الاثنين
✔ أحيانًا تحتاج الاثنين معًا للتوسيط الكامل


نصائح احترافية لمطوري الويب

  • دائمًا تخيل المحور قبل كتابة أي خاصية
  • استخدم أدوات DevTools لمعاينة Flexbox
  • جرّب القيم المختلفة لفهم التأثير بصريًا
  • لا تحفظ القيم فقط… افهم المنطق

 

الأسئلة الشائعة (FAQ)

1. ما الفرق الأساسي بين justify-content و align-items؟

الفرق أن justify-content يتحكم في توزيع العناصر على المحور الرئيسي، بينما align-items يتحكم في محاذاتها على المحور العرضي.

2. هل يمكن استخدام justify-content و align-items معًا؟

نعم، وغالبًا يتم استخدامهما معًا لتوسيط العناصر أفقيًا وعموديًا في نفس الوقت.

3. هل يتغير سلوك الخصائص مع flex-direction؟

نعم، لأن تغيير الاتجاه يغير المحور الرئيسي والعرضي.

4. متى أستخدم align-items بدل justify-content؟

عندما تريد التحكم في الاتجاه العمودي (أو العرضي حسب الاتجاه)، وليس توزيع العناصر.

5. هل Flexbox أفضل من Grid؟

Flexbox مناسب للمحاور الواحدة (1D)، بينما Grid أفضل للتصميمات الثنائية الأبعاد (2D).


 

🚀 البداية في إيدك

كل اللي محتاجه منك:

  • التزام
  • مذاكرة
  • وصبر

ومع النظام الصح…
هتوصل لنفس النتيجة اللي وصلها مبرمجين كتير بدأوا من الصفر
ودلوقتي شغالين في المجال 💪

🚀 ابدأ رحلتك مع كرياتيفو
وخد أول خطوة حقيقية نحو مستقبلك في البرمجة
📱 ابعتلنا علي واتساب
💬 ابعتلنا علي فيسبوك

الكلمات المفتاحية

الفرق بين justify-content و align-items شرح flexbox بالعربي تعلم flexbox justify-content شرح align-items شرح css flexbox بالعربي محاذاة العناصر في css توزيع العناصر في flexbox flexbox tutorial عربي شرح css للمبتدئين تصميم واجهات مواقع css layout main axis و cross axis توسيط العناصر css front end تطوير تعلم تصميم المواقع responsive design css شرح خصائص flexbox css للمبتدئين تصميم UI باستخدام css

مقالات مشابهة

تصميم

ما هو Flex Container و Flex Items في CSS؟ وكيف تتحكم فيهما باحتراف

تعرف على الفرق بين Flex Container و Flex Items في CSS وكيف تتحكم في كل منهما لبناء Layout مرن واحترافي. دليل عملي لمطوري الويب لفهم أساسيات Flexbox بشكل بسيط وواضح.

21 Apr, 2026
تفاصيل المقال
تصميم

الفرق بين Flexbox و CSS Grid: متى تستخدم كل منهما في تصميم المواقع؟

تعرف على الفرق بين Flexbox و CSS Grid ومتى تستخدم كل منهما في تصميم المواقع. دليل عملي يساعدك على اختيار الأداة المناسبة لبناء Layout احترافي.

20 Apr, 2026
تفاصيل المقال
تصميم

سر Flexbox في حل مشكلة توسيط العناصر في CSS بسهولة واحتراف

تعرف على كيف حل Flexbox مشكلة توسيط العناصر في CSS بطريقة بسيطة وفعالة. شرح عملي لمطوري الويب يوضح أهمية Flexbox في بناء تصميمات حديثة ومتجاوبة

20 Apr, 2026
تفاصيل المقال
تصميم

أفضل طريقة لبناء Navbar احترافي باستخدام Flexbox في CSS

تعلم كيف تبني شريط تنقل (Navbar) احترافي باستخدام Flexbox بسهولة. شرح عملي يساعدك على إنشاء Navbar متجاوب ومنظم مناسب لكل الأجهزة

20 Apr, 2026
تفاصيل المقال
تصميم

الفرق بين flex-grow و flex-shrink في CSS: شرح مبسط للتحكم في أحجام العناصر

تعرف على الفرق بين flex-grow و flex-shrink في CSS وكيف يتحكمان في أحجام العناصر داخل Flexbox بأسلوب عملي ومبسط. دليل احترافي لمطوري الويب لفهم توزيع المساحات وبناء Layout مرن ومتجاوب.

21 Apr, 2026
تفاصيل المقال
تصميم

ما هو flex-wrap في CSS؟ شرح كامل لكيفية بناء Layout مرن ومتجاوب

تعرف على خاصية flex-wrap في CSS وكيف تساعدك في بناء تصميمات مرنة ومتجاوبة بسهولة، مع شرح عملي وأمثلة واقعية لتحسين Layout موقعك

20 Apr, 2026
تفاصيل المقال