کانتینر Grid
کانتینر Grid (Grid Container) پایه و اساس CSS Grid Layout است که امکان چیدمان منظم عناصر (Grid Items) را در قالب ردیفها و ستونها فراهم میکند. تصور کنید در حال ساخت یک خانه هستید: کانتینر Grid مانند اسکلت و چارچوب خانه است و آیتمها مانند اتاقها و وسایل داخل خانه به صورت منظم و دقیق در آن قرار میگیرند. در یک فروشگاه آنلاین، کانتینر Grid میتواند کارتهای محصولات را به شکل متقارن و پاسخگو نمایش دهد، در وبسایت خبری بخشهای مقالات و سایدبار را سازماندهی کند، در وبلاگ شخصی پستها و نوار کناری را مرتب کند و در پورتال دولتی بخشهای اطلاعات و منوها را به صورت واضح و قابل دسترسی بچیند.
در این آموزش، شما یاد میگیرید چگونه از ویژگیهای grid-template-areas، grid-template-columns و grid-template-rows برای ایجاد ساختارهای پیچیده و قابل نگهداری استفاده کنید، با واحدهای fr و minmax لایههای پاسخگو بسازید و با gap فاصله مناسب بین آیتمها ایجاد کنید. این مفاهیم مانند سازماندهی کتابخانه هستند که هر کتاب در مکان مشخص خود قرار دارد، و باعث میشوند طراحی وب سایت شما هم زیبا و هم قابل نگهداری باشد.
مثال پایه
css.grid-container {
display: grid; /* فعالسازی حالت Grid */
grid-template-columns: 200px repeat(2, 1fr) 200px; /* ستونهای ثابت و انعطافپذیر */
grid-template-rows: 100px auto 100px; /* ارتفاع ردیفها */
gap: 20px; /* فاصله بین آیتمها */
}
.grid-item {
background-color: #e0f7fa; /* رنگ پسزمینه برای دید بهتر */
border: 1px solid #00796b; /* مرز برای تشخیص آیتمها */
}
در این مثال، display: grid کانتینر را به حالت Grid تبدیل میکند. ویژگی grid-template-columns چهار ستون تعریف میکند: ستون اول و آخر 200px ثابت و دو ستون میانی با واحد fr که فضای باقیمانده را به طور مساوی تقسیم میکند. ویژگی grid-template-rows ارتفاع ردیفها را تعیین میکند: ردیف اول و سوم 100px و ردیف میانی با auto ارتفاع میگیرد تا محتوا را در بر گیرد. gap مقدار فاصله بین آیتمها را مشخص میکند.
هر .grid-item دارای رنگ پسزمینه و مرز است تا موقعیت آن واضح باشد. این ساختار برای فروشگاه آنلاین، وبلاگ یا سایت خبری مناسب است، زیرا نمایی پاسخگو، منظم و قابل نگهداری ارائه میدهد و مشابه مرتب کردن اتاقها یا کتابها در یک کتابخانه عمل میکند.
مثال کاربردی
css.dashboard {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer";
grid-template-columns: 220px 1fr 1fr;
grid-template-rows: 80px 1fr 60px;
gap: 15px;
}
.header { grid-area: header; background-color: #ffccbc; }
.sidebar { grid-area: sidebar; background-color: #c8e6c9; }
.main { grid-area: main; background-color: #bbdefb; }
.footer { grid-area: footer; background-color: #ffe082; }
این مثال یک داشبورد پیچیده را نشان میدهد. grid-template-areas با نامگذاری منطقی، ساختار کانتینر را توصیف میکند. grid-template-columns یک ستون ثابت برای سایدبار و دو ستون انعطافپذیر برای بخش اصلی میسازد. grid-template-rows ارتفاع هدر، بدنه و فوتر را مشخص میکند. gap فاصله بین آیتمها را تعیین میکند.
این روش برای وبسایتهای خبری، فروشگاههای آنلاین و داشبوردها کاربردی است، زیرا امکان تغییر آسان چینش بدون اصلاح HTML را فراهم میکند و با استفاده از واحدهای fr و ویژگیهای پاسخگو، طراحی انعطافپذیر و قابل نگهداری ایجاد میشود، مانند چیدمان دقیق یک اتاق یا سازماندهی کتابها در یک کتابخانه.
بهترین شیوهها و اشتباهات رایج:
Best Practices:
- طراحی Mobile-First و آزمون در اندازههای مختلف صفحه.
- استفاده از واحدهای fr و minmax برای انعطافپذیری.
- نامگذاری منطقی grid-template-areas و grid-area.
-
تست پاسخگویی در مرورگرها و دستگاههای مختلف.
Common Mistakes: -
استفاده بیش از حد از مقادیر پیکسل ثابت که انعطافپذیری را کاهش میدهد.
- عدم استفاده از gap و ایجاد فواصل نامنظم بین آیتمها.
- تضاد specificity در CSS که باعث بروز مشکلات چیدمان میشود.
- عدم هماهنگی بین grid-template-areas و عناصر HTML.
نکات دیباگ: خطوط Grid و مناطق نامگذاری شده را با ابزارهای توسعهدهنده مرورگر بررسی کنید.
📊 مرجع سریع
Property/Method | Description | Example |
---|---|---|
display | فعالسازی حالت Grid | display: grid; |
grid-template-columns | تعریف اندازه ستونها | grid-template-columns: 100px 1fr 2fr; |
grid-template-rows | تعریف اندازه ردیفها | grid-template-rows: 50px auto 50px; |
grid-template-areas | تعریف مناطق نامگذاری شده | grid-template-areas: "header header" "sidebar main"; |
gap | تعیین فاصله بین آیتمها | gap: 10px; |
grid-area | اختصاص آیتم به منطقه مشخص | grid-area: main; |
خلاصه و مراحل بعدی: با درک کانتینر Grid میتوانید طراحی وبسایتهایی ساختارمند، پاسخگو و قابل نگهداری ایجاد کنید. mastery ویژگیهای display: grid، grid-template-rows، grid-template-columns، grid-template-areas، gap و grid-area به شما امکان میدهد لایههای پیچیده و پویا بسازید و آنها را با HTML و JavaScript ترکیب کنید. برای ادامه یادگیری، پیشنهاد میشود ویژگیهای align-items، justify-items، auto-placement، repeat و minmax را مطالعه و در پروژههای عملی مانند فروشگاه آنلاین، وبلاگ و داشبورد به کار ببرید.
🧠 دانش خود را بیازمایید
آزمون دانش شما
درک خود از این موضوع را با سوالات کاربردی بسنجید.
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود