در حال بارگذاری...

Grid در CSS

Flexbox آیتم‌ها را در یک جهت چید. CSS Grid فصل بعد را باز می‌کند: ردیف و ستون با هم. display: grid را روشن کنید، track بکشید، gap بگذارید، بعد در درس‌های Grid Container، Items، Areas و Responsive عمیق‌تر بروید.

جعبهٔ ابزار شروع Grid

📊 Grid یک‌نگاهه

مفهوم کار روزمره
کانتینر Grid والد با display: grid (یا inline-grid)
آیتم‌های Grid فرزندان مستقیمی که در شبکه می‌نشینند
Trackها ردیف‌ها و ستون‌هایی که شبکه را می‌سازند
سلول / area جایی که آیتم می‌نشیند (area در درس بعد)
gap فاصله بین trackها بدون حاشیهٔ دستی
واحد fr تقسیم فضای باقی بین trackها (پیش‌نمایش)

Grid را کاغذ شطرنجی صفحه بدانید: اول ستون و ردیف می‌کشید، بعد محتوا را در سلول‌ها می‌گذارید. Flexbox برای تولبار و خوشه‌های یک‌محوره عالی می‌ماند.

display: grid — شبکه را روشن کن

روی والد display: grid بگذارید. فرزندان خودبه‌خود آیتم Grid می‌شوند — برای مدل پایه کلاس اضافه لازم نیست.

کانتینر پایهٔ grid

css
.board {
display: grid;
}

اول ستون‌ها — یک قالب ساده

grid-template-columns trackهای عمودی را تعریف می‌کند. سه ستون برابر اسکچ آرامی برای کارت یا کاشی است.

سه ستون برابر

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

gap — gutter صادق

از gap (یا row-gap / column-gap) استفاده کنید تا فاصله وقتی trackها عوض می‌شوند یکدست بماند. gap را به پاشیدن margin روی هر فرزند ترجیح دهید.

Grid با gap

css
.board {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
}

یک ماتریس کوچک کارت

همان ایدهٔ اسکچ گالری — track برابر به‌همراه gap — ولی حالا زبان Grid حرف می‌زنید، نه فقط flex-wrap.

ماتریس کارت

css
.cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1.25rem;
}

.cards__item {
min-height: 8rem;
}

fr — فضای باقی را قسمت کن

واحد fr فضای آزاد را بین trackها تقسیم می‌کند. 2fr 1fr وقتی جا بماند ستون اول را دو برابر دوم می‌کند.

ستون‌های fr نابرابر

css
.shell {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 1.5rem;
}

عادت آرام Grid

Grid را برای پوستهٔ دوبعدی صفحه و ماتریس‌ها به کار ببرید. Flexbox را برای ردیف یک‌بعدی نگه دارید. با display: grid، یک grid-template-columns ساده و gap شروع کنید. جای‌گذاری عمیق خودکار، areaهای نام‌دار و trackهای واکنش‌گرا را برای درس‌های بعد بگذارید.

پوستهٔ شروع نام‌دار

css
.page {
display: grid;
grid-template-columns: 1fr 16rem;
gap: 1.5rem;
}

.page__main,
.page__rail {
min-width: 0;
}

خودتان امتحان کنید

  1. کانتینری با display: grid بسازید.
  2. grid-template-columns: repeat(3, 1fr) بگذارید.
  3. بین trackها gap: 1rem اضافه کنید.
  4. برای پوستهٔ main + rail مقدار 2fr 1fr را امتحان کنید.
  5. یک جمله بنویسید: کی هنوز Flexbox را انتخاب می‌کنید؟

اشتباه‌های رایج

  • گذاشتن display: grid روی هر عنصر بدون نیاز چیدمان
  • انتظار که فقط wrap در Flexbox جای Grid دوبعدی واقعی را بگیرد
  • رد کردن gap و تا ابد جنگیدن با margin فرزندان
  • پریدن به areaهای نام‌دار قبل از اینکه track پایه جا بیفتد
  • ساختن کل پوستهٔ صفحه با float وقتی Grid بهتر می‌نشیند

خلاصه

  • CSS Grid دوبعدی است: ردیف و ستون با هم
  • display: grid فرزندان را آیتم Grid می‌کند
  • grid-template-columns (و بعداً ردیف‌ها) track را تعریف می‌کنند
  • gap و fr فاصله و فضای آزاد را آرام نگه می‌دارند
  • درس‌های عمیق‌تر کانتینر، آیتم، area و Grid واکنش‌گرا بعداً می‌آیند

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

❓
7
سوالات
🎯
70%
برای قبولی
♾️
∞
زمان
🔄
∞
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود