تخطَّ إلى المحتوى

٢٩ يونيو ٢٠٢٦ · آخر تحديث: ٢١ أغسطس ٢٠٢٦

الفرق بين Flexbox و Grid في CSS بالعربي

شارك المقال:

عند تخطيط صفحات CSS، تواجه أداتين قويّتين: Flexbox و Grid. كثيرون يحتارون أيهما يستخدمون. الفرق أبسط مما تظنّ.

Flexbox — بُعد واحد ↔️

Flexbox مصمّم لترتيب العناصر في اتّجاه واحد: إمّا صفّ أو عمود. مثالي لأشرطة التنقّل والأزرار والقوائم.

.container { display: flex; justify-content: space-between; }

Grid — بُعدان ⊞

CSS Grid مصمّم للتخطيط في بُعدين معًا: صفوف وأعمدة. مثالي لتخطيط الصفحة الكامل والمعارض (Galleries).

.container { display: grid; grid-template-columns: 1fr 1fr 1fr; }

مثال عملي: بطاقات منتجات في صفّ

جرّب بناء شريط بطاقات منتجات يلتفّ تلقائيًّا لسطر جديد عند ضيق الشاشة:

/* بـ Flexbox: يعمل، لكن محاذاة العناصر بين الأسطر المختلفة غير مضبوطة تلقائيًّا */
.cards {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.card { flex: 1 1 250px; } /* كل بطاقة ≥ 250px، تتمدّد لتملأ الفراغ */
/* بـ Grid: أعمدة متساوية تلقائيًّا حسب المساحة المتاحة، بمحاذاة مثالية */
.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 1rem;
}

كلاهما يحقّق نتيجة متشابهة بصريًّا هنا، لكن Grid مع auto-fill يضبط عدد الأعمدة والمحاذاة الرأسية بين كل الصفوف تلقائيًّا دون أي حساب يدوي — بينما Flexbox قد يترك فراغات غير متساوية بين الأسطر المختلفة لأنه لا "يرى" الأعمدة كوحدة واحدة، فقط يرتّب عناصر بالتتابع.

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

الجانبFlexboxGrid
الأبعادواحد (صفّ/عمود)اثنان (صفوف وأعمدة)
الأنسب لـترتيب عناصر بسيطتخطيط كامل معقّد
التحكّممحور واحدمحورين
الاستخدامالأكثر يوميًّاالتخطيطات الكبيرة
محاذاة عبر عدّة صفوفغير تلقائيةتلقائية ودقيقة
دعم المتصفّحاتقديم وواسع جدًّاحديث نسبيًّا لكن واسع اليوم

خطأ شائع عند المبتدئين

محاولة بناء شبكة (Grid) حقيقية باستخدام Flexbox وحده عبر flex-wrap فقط — يعمل ظاهريًّا لكنه يفشل بمجرّد اختلاف ارتفاع العناصر بين الصفوف (تختفي المحاذاة الرأسية). إذا كان تخطيطك يحتاج فعليًّا صفوفًا وأعمدة متزامنة، لا "تحايل" بـ Flexbox — استخدم Grid مباشرةً، هو المصمَّم لهذا بالضبط.

كيف تختار؟

  • ترتّب عناصر في صفّ أو عمود؟ → Flexbox.
  • تبني تخطيطًا كاملًا بصفوف وأعمدة؟ → Grid.
  • الأفضل: استخدمهما معًا — Grid للهيكل، Flexbox للتفاصيل.

الخلاصة

ليست منافسة بل تكامل: Flexbox لبُعد واحد، Grid لبُعدين. إتقانهما معًا يجعلك قادرًا على بناء أي تخطيط.

تعمّق في مسار CSS.

📚 مصادر رسمية للتعمّق: توثيق CSS على MDN

الأسئلة الشائعة

ما الفرق الأساسي بين Flexbox و Grid؟

Flexbox مصمّم للتخطيط في بُعد واحد (صفّ أو عمود)، بينما Grid مصمّم للتخطيط في بُعدين (صفوف وأعمدة معًا). اختر حسب شكل التخطيط الذي تريده.

أيهما أتعلّم أولًا؟

ابدأ بـ Flexbox لأنه أبسط وأكثر استخدامًا اليومي لترتيب العناصر، ثم تعلّم Grid للتخطيطات المعقّدة ثنائية الأبعاد.

هل يمكن استخدامهما معًا؟

نعم، وهو الأسلوب الشائع: استخدم Grid للتخطيط العامّ للصفحة، و Flexbox لترتيب العناصر داخل كل قسم. يكمّل أحدهما الآخر.

اقرأ أيضًا

تصفّح كل المقالات في المدوّنة، أو ابدأ التعلّم من المسارات و خرائط الطريق.