آموزش رایگان CSS

آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل

1402/06/06 23:24 محراب حسن زاده
آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل

CSS Grid Layout یکی از ابزارهای قدرتمند CSS برای ایجاد طراحی‌های شبکه‌ای در صفحات وب است. با استفاده از این ویژگی می‌توان طرح‌های پیچیده و واکنش‌گرا ایجاد کرد که به توسعه‌دهندگان امکان کنترل دقیق‌تری بر چیدمان عناصر می‌دهد. CSS Grid Layout در طراحی‌های مدرن بسیار محبوب است زیرا به طراحان این امکان را می‌دهد که بدون استفاده از فریم‌ورک‌های جانبی یا کدهای پیچیده CSS، چیدمان‌های منظم و انعطاف‌پذیر بسازند. در این مقاله، مفاهیم اصلی CSS Grid Layout و نحوه استفاده از آن برای ساختن شبکه‌های واکنش‌گرا را بررسی می‌کنیم.

 

CSS Grid Layout چیست؟

CSS Grid Layout یا به اختصار Grid، یک سیستم طراحی شبکه‌ای است که به شما امکان می‌دهد عناصر را به صورت ردیف‌ها و ستون‌ها تنظیم کنید. Grid از دو جزء اصلی تشکیل شده است:

  • Container: ظرف اصلی که ویژگی‌های Grid به آن اعمال می‌شود.

  • Items: عناصری که درون Grid Container قرار دارند و در شبکه‌ای که شما تعریف می‌کنید چیدمان می‌شوند.

 

ایجاد یک Grid Container

برای تعریف یک Grid، باید display عنصر اصلی یا Container را به مقدار grid تغییر دهید. این کار باعث می‌شود عنصر به Grid Container تبدیل شود و تمام فرزندان آن به عنوان Grid Items در نظر گرفته شوند.

مثال ساده از Grid Container



< div class="grid-container" >
  < div class="item" > 1 < / div >
  < div class="item" > 2 < / div >
  < div class="item" > 3 < / div >
  < div class="item" > 4 < / div >
< / div >

 



.grid-container {
  display: grid;
  gap: 10px; /* فاصله بین عناصر */
}

 

در این مثال، grid-container یک Grid Container است و itemها به عنوان Grid Items در نظر گرفته می‌شوند.

 

تعریف ستون‌ها و ردیف‌ها با grid-template-columns و grid-template-rows

برای مشخص کردن تعداد و اندازه ستون‌ها و ردیف‌ها، از grid-template-columns و grid-template-rows استفاده می‌کنیم.

مثال تعریف ستون‌ها و ردیف‌ها



.grid-container {
  display: grid;
  grid-template-columns: 200px 200px 200px;
  grid-template-rows: 150px 150px;
}

 

در اینجا:

  • سه ستون با عرض 200 پیکسل و دو ردیف با ارتفاع 150 پیکسل تعریف شده‌اند.

  • Grid Container به شکلی ساخته شده که شامل ۳ ستون و ۲ ردیف خواهد بود.

 

استفاده از fr برای اندازه‌دهی انعطاف‌پذیر

واحد fr به شما اجازه می‌دهد اندازه ستون‌ها یا ردیف‌ها را به صورت نسبی تعیین کنید. برای مثال:



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

 

در اینجا:

  • عرض ستون اول و سوم برابر و ستون دوم دو برابر ستون‌های دیگر است.

 

کنترل فضای بین عناصر با gap

ویژگی gap برای تعیین فضای بین ستون‌ها و ردیف‌ها در Grid استفاده می‌شود. این ویژگی به جای grid-row-gap و grid-column-gap معرفی شده و به راحتی فضای بین همه Grid Items را تنظیم می‌کند.



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

 

در اینجا، فاصله 20 پیکسل بین همه ستون‌ها و ردیف‌ها اعمال می‌شود.

 

ادغام ستون‌ها و ردیف‌ها با grid-column و grid-row

با استفاده از grid-column و grid-row می‌توانید Grid Items را به صورت افقی و عمودی گسترش دهید. این ویژگی‌ها تعیین می‌کنند که هر عنصر چند ستون یا ردیف را پوشش دهد.

مثال گسترش Grid Items



.item1 {
  grid-column: 1 / 3; /* از ستون 1 تا ستون 3 گسترش می‌یابد */
  grid-row: 1 / 2; /* فقط ردیف اول را پوشش می‌دهد */
}

 

در اینجا:

  • item1 دو ستون را اشغال می‌کند و از ستون اول تا سوم گسترش می‌یابد.

 

تراز کردن عناصر با justify-items و align-items

با استفاده از ویژگی‌های justify-items و align-items می‌توانید Grid Items را به صورت افقی و عمودی تراز کنید.

مثال تراز کردن عناصر


.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  justify-items: center; /* تراز افقی به مرکز */
  align-items: center; /* تراز عمودی به مرکز */
}

 

استفاده از template areas برای چیدمان‌های پیچیده

ویژگی grid-template-areas امکان تعریف یک چیدمان بصری را با استفاده از نام‌های مناطق فراهم می‌کند. این ویژگی برای طراحی‌های پیچیده و کاربردی بسیار مفید است.

مثال استفاده از grid-template-areas



< div class="grid-container" >
  < div class="header" > Header < / div >
  < div class="sidebar" > Sidebar < / div >
  < div class="content" > Content < / div >
  < div class="footer" > Footer < / div >
< / div >

 



.grid-container {
  display: grid;
  grid-template-columns: 1fr 3fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
    "header header"
    "sidebar content"
    "footer footer";
  gap: 10px;
}

.header {
  grid-area: header;
}

.sidebar {
  grid-area: sidebar;
}

.content {
  grid-area: content;
}

.footer {
  grid-area: footer;
}

 

در اینجا:

  • مناطق header، sidebar، content و footer تعریف شده و با استفاده از grid-template-areas به یک چیدمان منظم و واضح تبدیل شده‌اند.

 

طراحی واکنش‌گرا با CSS Grid

یکی از مزایای CSS Grid این است که به راحتی می‌توان طراحی‌های واکنش‌گرا ایجاد کرد. با استفاده از media queries می‌توانید طراحی Grid خود را برای اندازه‌های مختلف صفحه تغییر دهید.

مثال طراحی واکنش‌گرا



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

@media (max-width: 768px) {
  .grid-container {
    grid-template-columns: 1fr;
  }
}

 

در اینجا:

  • زمانی که عرض صفحه کمتر از 768 پیکسل باشد، Grid از سه ستون به یک ستون تغییر می‌کند و طراحی مناسب برای صفحه نمایش‌های کوچک ایجاد می‌شود.

 

نکات و بهترین شیوه‌ها در CSS Grid

  • استفاده از واحد fr: برای ایجاد طراحی‌های انعطاف‌پذیر، از واحد fr به جای پیکسل استفاده کنید.

  • استفاده از grid-template-areas برای طراحی‌های پیچیده: grid-template-areas چیدمان‌های پیچیده را ساده‌تر و خواناتر می‌کند.

  • تست واکنش‌گرایی: اطمینان حاصل کنید که طرح شما در اندازه‌های مختلف صفحه به درستی نمایش داده می‌شود.

  • ترکیب CSS Grid و Flexbox: در پروژه‌های بزرگ، از ترکیب CSS Grid و Flexbox برای بهینه‌سازی چیدمان استفاده کنید. Flexbox برای چیدمان داخل Grid Items و Grid برای چیدمان کلی مناسب است.

 

نتیجه‌گیری

CSS Grid Layout یک ابزار بسیار قدرتمند و منعطف برای ایجاد طراحی‌های شبکه‌ای پیچیده و واکنش‌گرا است. با درک و استفاده از ویژگی‌های grid-template-columns، grid-template-rows، grid-template-areas و ترکیب آن‌ها با مفاهیم واکنش‌گرایی، می‌توانید چیدمان‌های حرفه‌ای و کاربرپسند ایجاد کنید. با تمرین و آشنایی بیشتر با CSS Grid، می‌توانید طراحی‌های زیبایی خلق کرده و تجربه کاربری بهتری برای وب‌سایت‌های خود فراهم کنید.

 

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
1403/07/28 21:31

آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
1404/09/29 20:53

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر
مفهوم برنامه‌نویسی هم‌زمان و ناهم‌زمان در جاوا اسکریپت: تفاوت‌ها، مثال‌ها و کاربردها
1403/07/29 20:37

مفهوم برنامه‌نویسی هم‌زمان و ناهم‌زمان در جاوا اسکریپت: تفاوت‌ها، مثال‌ها و کاربردها

مطالعه بیشتر
آموزش کامل دستور switch-case در PHP (به همراه مثال‌های کاربردی)
1405/04/04 00:08

آموزش کامل دستور switch-case در PHP (به همراه مثال‌های کاربردی)

مطالعه بیشتر
آموزش ساخت یک برنامه ساده با Fetch API در جاوا اسکریپت: راهنمای گام به گام
1403/08/01 20:16

آموزش ساخت یک برنامه ساده با Fetch API در جاوا اسکریپت: راهنمای گام به گام

مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب
1402/06/18 23:07

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

مطالعه بیشتر
آموزش کامل توابع در PHP: از مقدماتی تا پیشرفته با استانداردهای گوگل
1405/04/16 01:02

آموزش کامل توابع در PHP: از مقدماتی تا پیشرفته با استانداردهای گوگل

مطالعه بیشتر
راهنمای جامع نصب و پیکربندی محیط توسعه محلی (XAMPP، WAMP و Laragon)
1405/03/14 23:52

راهنمای جامع نصب و پیکربندی محیط توسعه محلی (XAMPP، WAMP و Laragon)

مطالعه بیشتر
آموزش ایجاد Transitions و انیمیشن‌های صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب
1403/08/16 23:05

آموزش ایجاد Transitions و انیمیشن‌های صفحه بارگذاری (Loader) در CSS: طراحی لودرهای جذاب

مطالعه بیشتر
آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثال‌ها و مفاهیم
1403/07/29 20:15

آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثال‌ها و مفاهیم

مطالعه بیشتر
آموزش جامع تعریف تابع سفارشی در PHP طبق استاندارد گوگل و PSR
1405/04/16 01:07

آموزش جامع تعریف تابع سفارشی در PHP طبق استاندارد گوگل و PSR

مطالعه بیشتر
آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها
1403/08/12 19:59

آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد