آموزش Flexbox در CSS – بخش اول: اصول و ساختار اولیه

گرید (Grid) یکی از قدرتمندترین ابزارهای CSS برای طراحی چیدمان‌های منظم و واکنش‌گراست. برخلاف روش‌های قدیمی مثل float یا حتی Flexbox، CSS Grid به‌طور مستقیم برای ساخت شبکه‌های چندستونه و چندردیفی طراحی شده و کنترل کامل روی ساختار صفحه به شما می‌دهد.


🟡 گرید چیست و چرا مهم است؟

  • گرید یعنی تقسیم صفحه به ستون‌ها و ردیف‌های منظم.
  • باعث می‌شود طراحی شما یکپارچه، بالانس و چشم‌نواز باشد.
  • گرید ۱۲ ستونه محبوب است چون به‌راحتی به 2، 3، 4، 6 تقسیم می‌شود.

🧱 شروع با CSS Grid

ساختار HTML ساده:

<div class="container">
  <header>هدر</header>
  <aside>سایدبار</aside>
  <main>
    <div class="box">باکس 1</div>
    <div class="box">باکس 2</div>
    <div class="box">باکس 3</div>
    <div class="box">باکس 4</div>
  </main>
  <footer>فوتر</footer>
</div>

استایل پایه با Grid:

.container {
  display: grid;
  grid-template-columns: repeat(12, 1fr); /* گرید ۱۲ ستونه */
  grid-gap: 20px; /* فاصله بین ستون‌ها (گاتر) */
}

header {
  grid-column: 1 / 13; /* هدر تمام‌عرض */
}

aside {
  grid-column: 10 / 13; /* سایدبار ۳ ستون سمت راست */
}

main {
  grid-column: 1 / 10; /* محتوای اصلی ۹ ستون سمت چپ */
  display: grid;
  grid-template-columns: repeat(4, 1fr); /* چهار ستون داخلی */
  grid-gap: 20px;
}

footer {
  grid-column: 1 / 13; /* فوتر تمام‌عرض */
}

📱 واکنش‌گرایی با Media Queries

موبایل (≤480px):

@media screen and (max-width: 480px) {
  .container {
    grid-template-columns: 1fr; /* تک‌ستونه */
  }
  aside {
    grid-column: 1; /* سایدبار زیر محتوای اصلی */
  }
  main {
    grid-template-columns: 1fr; /* باکس‌ها یکی‌یکی زیر هم */
  }
}

تبلت (≤768px):

@media screen and (max-width: 768px) {
  .container {
    grid-template-columns: repeat(6, 1fr); /* گرید ۶ ستونه */
  }
  aside {
    grid-column: 1 / 7; /* سایدبار زیر محتوای اصلی */
  }
  main {
    grid-template-columns: repeat(2, 1fr); /* باکس‌ها دو‌تایی کنار هم */
  }
}

دسکتاپ متوسط (≤1200px):

@media screen and (max-width: 1200px) {
  .container {
    grid-template-columns: repeat(12, 1fr);
  }
  aside {
    grid-column: 9 / 13; /* سایدبار کنار محتوای اصلی */
  }
  main {
    grid-template-columns: repeat(2, 1fr); /* باکس‌ها دو‌تایی */
  }
}

دسکتاپ بزرگ (>1200px):

@media screen and (min-width: 1200px) {
  main {
    grid-template-columns: repeat(4, 1fr); /* باکس‌ها چهارتایی */
  }
}

🎯 جمع‌بندی

  • با CSS Grid می‌توانید شبکه‌های چندستونه بسازید.
  • با Media Queries چیدمان را برای موبایل، تبلت، لپ‌تاپ و دسکتاپ تغییر دهید.
  • گرید ۱۲ ستونه انعطاف‌پذیر است و به‌راحتی تقسیم می‌شود.
  • این روش مدرن‌تر و قدرتمندتر از float و حتی Flexbox برای ساخت شبکه‌های پیچیده است.

💡 تمرین پیشنهادی:
یک صفحه‌ی ساده با هدر، سایدبار، محتوای اصلی و فوتر بسازید. سپس با CSS Grid و Media Queries آن را واکنش‌گرا کنید تا در موبایل تک‌ستونه، در تبلت دو‌ستونه و در دسکتاپ چندستونه نمایش داده شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *