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

آموزش تکنیک‌های پیشرفته CSS Grid: طراحی ساختارهای پیچیده و واکنش‌گرا

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

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

 

مروری بر مفاهیم پایه‌ای CSS Grid

قبل از پرداختن به تکنیک‌های پیشرفته، ابتدا مروری بر اصول اولیه CSS Grid داشته باشیم.

  • container: عنصری که خاصیت display: grid به آن اعمال می‌شود و به عنوان شبکه اصلی در نظر گرفته می‌شود.

  • items: عناصری که درون container قرار می‌گیرند و در شبکه‌ی Grid جای می‌گیرند.

مثال پایه‌ای از تعریف CSS Grid



.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

 

در اینجا:

  • grid-template-columns سه ستون برابر ایجاد می‌کند.

  • gap فاصله بین عناصر Grid را تنظیم می‌کند.

 

تکنیک تعریف قالب با استفاده از grid-template-areas

با grid-template-areas می‌توانید ناحیه‌های خاصی را در شبکه Grid نام‌گذاری کنید و ساختار پیچیده‌ای بسازید که خواناتر و قابل تغییرتر باشد.

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



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

.header {
  grid-area: header;
}

.sidebar {
  grid-area: sidebar;
}

.content {
  grid-area: content;
}

.footer {
  grid-area: footer;
}

 

در اینجا:

  • قالب به سه ستون و چندین ردیف تقسیم شده و نواحی مختلفی برای header، sidebar، content و footer تعریف شده است.

  • این روش به خصوص در طراحی‌های پیچیده‌تر مانند صفحات وب‌سایت‌های چندبخشی و ترکیبی مفید است.

 

کنترل اندازه ستون‌ها و ردیف‌ها با minmax() و auto-fit

ویژگی minmax() به شما اجازه می‌دهد که اندازه حداقل و حداکثر برای ستون‌ها و ردیف‌ها تعیین کنید. auto-fit و auto-fill نیز برای پر کردن فضا و کنترل چیدمان واکنش‌گرا کاربرد دارند.

مثال استفاده از minmax() و auto-fit



.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
}

 

در اینجا:

  • minmax(200px, 1fr) تضمین می‌کند که ستون‌ها حداقل 200 پیکسل و حداکثر به اندازه کل فضای باقی‌مانده باشند.

  • auto-fit باعث می‌شود که ستون‌ها به صورت خودکار اضافه یا حذف شوند تا فضای کامل شبکه پر شود.

 

ادغام چندین سلول با استفاده از grid-column و grid-row

grid-column و grid-row به شما اجازه می‌دهند که یک عنصر را در چندین ستون یا ردیف گسترش دهید و فضای بیشتری را اشغال کنید.

مثال ترکیب چندین ستون و ردیف



.item1 {
  grid-column: 1 / 3; /* از ستون اول تا ستون سوم */
  grid-row: 1 / 2; /* از ردیف اول تا دوم */
}

 

این روش به شما امکان می‌دهد که ساختارهای نامتقارن و خلاقانه‌ای را طراحی کنید و هر عنصر را در مکان دلخواه و با ابعاد خاص قرار دهید.

 

تغییر ترتیب عناصر در Grid بدون تغییر HTML

یکی از قابلیت‌های قدرتمند CSS Grid، امکان تغییر مکان عناصر بدون نیاز به تغییر ساختار HTML است. می‌توانید با order و grid-area ترتیب نمایش عناصر را کنترل کنید.

مثال تغییر مکان عناصر در Grid



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

.item1 {
  order: 2;
}

.item2 {
  order: 1;
}

 

در اینجا، item2 قبل از item1 نمایش داده می‌شود بدون اینکه نیاز به تغییر HTML باشد. این ویژگی به شما انعطاف بالایی برای طراحی‌های پیچیده می‌دهد.

 

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

CSS Grid به خوبی با Media Queries ترکیب می‌شود و می‌توانید شبکه را بر اساس اندازه صفحه‌نمایش تغییر دهید.

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



.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

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

 

در اینجا:

  • شبکه برای صفحه‌نمایش‌های بزرگ‌تر از 768 پیکسل سه‌ستونی است و در صفحه‌نمایش‌های کوچک‌تر به تک‌ستونی تبدیل می‌شود.

 

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

واحد fr یا Fraction در CSS Grid برای تقسیم فضای موجود بین ستون‌ها و ردیف‌ها استفاده می‌شود. این واحد به شما این امکان را می‌دهد که ستون‌ها و ردیف‌های شبکه به طور نسبی بر اساس فضای موجود تنظیم شوند.

مثال استفاده از fr



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

 

در اینجا:

  • ستون اول دو برابر ستون دوم و سوم از فضای موجود استفاده می‌کند. این روش برای تقسیم‌بندی انعطاف‌پذیر فضا در شبکه بسیار کاربردی است.

 

تکنیک طراحی کارت‌های نامتقارن با CSS Grid

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

مثال طراحی کارت‌های نامتقارن



.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.card1 {
  grid-column: span 2; /* کارت به اندازه دو ستون گسترده می‌شود */
}

.card2 {
  grid-row: span 2; /* کارت به اندازه دو ردیف گسترده می‌شود */
}

 

طراحی ساختارهای پیچیده‌تر با ترکیب flexbox و CSS Grid

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

مثال ترکیب Flexbox و CSS Grid



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

.flex-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

 

در اینجا، Flexbox برای چینش داخلی در یک عنصر Grid استفاده می‌شود و به شما کنترل بیشتری بر روی چیدمان عناصر داخل آن می‌دهد.

 

نکات و بهترین شیوه‌ها برای استفاده از CSS Grid در طراحی‌های پیچیده و واکنش‌گرا

  • استفاده از نام‌های معنادار در grid-template-areas: نام‌های مشخص و معنادار برای نواحی مختلف در Grid کمک می‌کند که ساختار کد شما خواناتر و سازمان‌یافته‌تر باشد.

  • پرهیز از استفاده بیش از حد از گریدهای تودرتو: برای ساده‌تر نگه‌داشتن ساختار و عملکرد بهتر، از ایجاد گریدهای تودرتو تا حد امکان پرهیز کنید.

  • استفاده از fr برای انعطاف‌پذیری بیشتر: استفاده از واحد fr به شما امکان می‌دهد که شبکه‌های واکنش‌گراتری طراحی کنید و به خوبی فضای موجود را پر کنید.

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

 

نتیجه‌گیری

CSS Grid ابزاری قدرتمند برای ایجاد ساختارهای پیچیده و واکنش‌گرا است و با استفاده از تکنیک‌های پیشرفته مانند grid-template-areas، minmax، و auto-fit می‌توانید طراحی‌های منعطف و حرفه‌ای‌تری بسازید. با تمرین و به‌کارگیری این نکات و تکنیک‌ها، می‌توانید از CSS Grid در طراحی‌های وب خود بهره بیشتری ببرید و ساختارهای مدرن و جذابی ایجاد کنید که تجربه کاربری بهتری برای مخاطبان فراهم کند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگ‌ها و ایجاد افکت‌های جذاب
1403/08/12 20:18

آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگ‌ها و ایجاد افکت‌های جذاب

مطالعه بیشتر
آموزش ساختار استاندارد و بهینه پروژه PHP به سبک گوگل
1405/05/04 23:25

آموزش ساختار استاندارد و بهینه پروژه PHP به سبک گوگل

مطالعه بیشتر
آموزش گام به گام اتصال به دیتابیس با MySQLi در PHP (امن و استاندارد)
1405/05/04 23:40

آموزش گام به گام اتصال به دیتابیس با MySQLi در PHP (امن و استاندارد)

مطالعه بیشتر
آموزش جامع و استاندارد کار با آرایه‌ها در PHP (راهنمای گوگل)
1405/03/24 01:04

آموزش جامع و استاندارد کار با آرایه‌ها در PHP (راهنمای گوگل)

مطالعه بیشتر
کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius
1403/08/09 20:16

کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius

مطالعه بیشتر
آموزش فیلتر کردن داده‌ها در PHP با توابع filter_var و preg_match
1405/05/13 21:29

آموزش فیلتر کردن داده‌ها در PHP با توابع filter_var و preg_match

مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
1402/11/02 23:23

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

مطالعه بیشتر
معرفی MySQL و phpMyAdmin: راهنمای جامع مدیریت پایگاه داده برای توسعه‌دهندگان وب
1405/05/04 23:32

معرفی MySQL و phpMyAdmin: راهنمای جامع مدیریت پایگاه داده برای توسعه‌دهندگان وب

مطالعه بیشتر
آموزش کامل Super Global ها در PHP (متغیرهای سراسری)
1405/05/01 19:58

آموزش کامل Super Global ها در PHP (متغیرهای سراسری)

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

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

مطالعه بیشتر
آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع
1403/08/02 21:45

آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیش‌فرض - راهنمای جامع

مطالعه بیشتر
آموزش ساخت یک گالری تصویر با استفاده از جاوا اسکریپت: راهنمای گام به گام
1403/08/03 16:57

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

مطالعه بیشتر

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