CodeShot
Midسختی 3 از ۵· در 65٪ مصاحبه‌های این حوزه پرسیده شده

چه زمانی Flexbox و چه زمانی CSS Grid مناسب‌تر است؟

نشان کردن

پاسخ کوتاه

Flexbox برای چیدمان یک‌بعدی (یک سطر یا یک ستون) مناسب است؛ Grid برای چیدمان دوبعدی (سطر و ستون هم‌زمان) طراحی شده.

پاسخ کامل

هر دو ابزار چیدمان مدرن CSS هستند اما مسئله متفاوتی حل می‌کنند:

  • Flexbox یک‌بعدی است: یا محتوا را در یک ردیف می‌چیند یا در یک ستون. برای چیدمان اجزای داخل یک نوار ابزار، یک کارت یا یک منو عالی است.
  • CSS Grid دوبعدی است: هم‌زمان سطر و ستون تعریف می‌کند. برای چیدمان کلی یک صفحه (Sidebar + Header + Content + Footer) مناسب‌تر است.

قاعده عملی: اگر فقط یک جهت (افقی یا عمودی) اهمیت دارد، Flexbox؛ اگر باید هم‌زمان روی سطر و ستون کنترل داشته باشید، Grid.

مثال کد

/* Flexbox — یک ردیف از دکمه‌ها */
.toolbar { display: flex; gap: 8px; }

/* Grid — چیدمان کلی صفحه */
.layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    grid-template-rows: auto 1fr auto;
}

نکته مهم

منبع کامل موضوع: CSS Grid Layout — MDN و Flexbox — MDN.

اشتباه رایج

❌ ساختن کل چیدمان صفحه فقط با Flexbox تودرتو — قابل انجام است، اما Grid برای همین سناریو ساده‌تر و خواناتر است.