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

آموزش Responsive Design با استفاده از Media Queries: طراحی واکنش‌گرا برای تمامی دستگاه‌ها

1402/06/10 18:07 محراب حسن زاده
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنش‌گرا برای تمامی دستگاه‌ها

طراحی واکنش‌گرا (Responsive Design) یک روش طراحی وب‌سایت است که برای بهبود تجربه کاربری در انواع دستگاه‌ها، از موبایل گرفته تا دسکتاپ، مورد استفاده قرار می‌گیرد. یکی از ابزارهای اصلی برای دستیابی به طراحی واکنش‌گرا Media Queries در CSS است. Media Queries به شما امکان می‌دهد استایل‌های متناسب با ابعاد و شرایط مختلف صفحه‌نمایش را تنظیم کنید. در این مقاله، نحوه استفاده از Media Queries و اصول کلیدی برای ایجاد وب‌سایت‌های واکنش‌گرا را یاد خواهیم گرفت.

 

Media Queries چیست و چرا مهم است؟

Media Queries یک ویژگی در CSS است که به شما امکان می‌دهد استایل‌ها را بر اساس ویژگی‌های صفحه‌نمایش (مانند عرض، ارتفاع، جهت نمایش و رزولوشن) تغییر دهید. این ویژگی برای طراحی وب‌سایت‌های واکنش‌گرا ضروری است زیرا کمک می‌کند طرح، چیدمان و استایل‌ها متناسب با اندازه صفحه‌نمایش کاربران تغییر کند و در نتیجه تجربه کاربری بهتری ایجاد شود.

 

نحوه استفاده از Media Queries در CSS

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



@media (شرط) {
  /* استایل‌هایی که برای شرط تعیین‌شده اعمال می‌شوند */
}

 

مثال ساده Media Query



@media (max-width: 768px) {
  body {
    background-color: lightblue;
  }
}

 

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

 

تنظیم Breakpoints در Media Queries

Breakpoints نقاطی در طراحی واکنش‌گرا هستند که در آن‌ها چیدمان و استایل وب‌سایت تغییر می‌کند. انتخاب Breakpoints مناسب به بهبود تجربه کاربری کمک می‌کند. معمولاً از Breakpoints زیر برای اندازه‌های مختلف صفحه‌نمایش استفاده می‌شود:

  • موبایل‌های کوچک: کمتر از 576 پیکسل

  • موبایل‌های بزرگ و تبلت‌های کوچک: بین 576 تا 768 پیکسل

  • تبلت‌های بزرگ و دسکتاپ‌های کوچک: بین 768 تا 992 پیکسل

  • دسکتاپ‌های بزرگ: بیشتر از 1200 پیکسل

مثال تعیین Breakpoints



/* موبایل‌های کوچک */
@media (max-width: 576px) {
  body {
    font-size: 14px;
  }
}

/* موبایل‌های بزرگ و تبلت‌های کوچک */
@media (min-width: 576px) and (max-width: 768px) {
  body {
    font-size: 16px;
  }
}

/* تبلت‌های بزرگ و دسکتاپ‌های کوچک */
@media (min-width: 768px) and (max-width: 992px) {
  body {
    font-size: 18px;
  }
}

/* دسکتاپ‌های بزرگ */
@media (min-width: 1200px) {
  body {
    font-size: 20px;
  }
}

 

در اینجا، اندازه فونت بر اساس Breakpoints مختلف تنظیم می‌شود تا در هر اندازه صفحه‌نمایش خوانا و متناسب باشد.

 

استفاده از Media Queries برای طراحی منوهای واکنش‌گرا

منوهای ناوبری یکی از بخش‌های مهم طراحی واکنش‌گرا هستند. در صفحه‌نمایش‌های کوچک، منوهای طولانی معمولاً به منوهای همبرگری تغییر پیدا می‌کنند.



/* نمایش منوی همبرگری در صفحه‌نمایش‌های کوچک */
@media (max-width: 768px) {
  .menu {
    display: none;
  }

  .hamburger-menu {
    display: block;
  }
}

/* نمایش منوی کامل در دسکتاپ */
@media (min-width: 769px) {
  .menu {
    display: flex;
  }

  .hamburger-menu {
    display: none;
  }
}

 

در اینجا:

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

  • در صفحه‌نمایش‌های بزرگ، منوی کامل به صورت افقی نمایش داده می‌شود.

 

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

CSS Grid و Flexbox دو ابزار مفید برای ایجاد شبکه‌های واکنش‌گرا هستند که با استفاده از Media Queries می‌توانید تعداد ستون‌ها و چیدمان شبکه را برای دستگاه‌های مختلف تغییر دهید.

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



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

@media (min-width: 576px) {
  .container {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 768px) {
  .container {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 992px) {
  .container {
    grid-template-columns: repeat(4, 1fr);
  }
}

 

در اینجا:

  • در صفحه‌های کوچک (کمتر از 576 پیکسل)، شبکه به صورت یک‌ستونی نمایش داده می‌شود.

  • در تبلت‌ها و دسکتاپ‌ها، تعداد ستون‌ها به ترتیب به 2، 3 و 4 افزایش می‌یابد.

 

تغییر اندازه تصاویر و ویدئوها با Media Queries

برای حفظ نسبت تصاویر و ویدئوها و جلوگیری از بارگذاری تصاویر بزرگ در صفحه‌نمایش‌های کوچک، می‌توانید اندازه تصاویر و ویدئوها را با Media Queries تنظیم کنید.



img {
  width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  img {
    width: 50%;
  }
}

 

در اینجا:

  • تصاویر در صفحه‌نمایش‌های کوچک به عرض کامل عنصر والد تنظیم می‌شوند.

  • در صفحه‌نمایش‌های بزرگ‌تر، تصاویر به 50 درصد کاهش می‌یابند تا فضای بیشتری در اختیار سایر محتواها قرار گیرد.

 

استفاده از Flexbox و Media Queries برای طراحی ریسپانسیو

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

مثال استفاده از Flexbox و Media Queries



.container {
  display: flex;
  flex-direction: column;
}

@media (min-width: 768px) {
  .container {
    flex-direction: row;
  }
}

 

در اینجا:

  • در صفحه‌های کوچک، عناصر به صورت عمودی چیده می‌شوند.

  • در تبلت و دسکتاپ‌ها، عناصر به صورت افقی کنار هم قرار می‌گیرند.

 

استفاده از Media Queries برای فونت و تایپوگرافی

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



body {
  font-size: 16px;
}

@media (max-width: 768px) {
  body {
    font-size: 14px;
  }
}

@media (min-width: 1200px) {
  body {
    font-size: 18px;
  }
}

 

در اینجا:

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

 

نکات و بهترین شیوه‌ها برای طراحی واکنش‌گرا

  • شروع طراحی با موبایل (Mobile-First Design): با طراحی برای صفحه‌نمایش‌های کوچک شروع کنید و سپس برای صفحه‌نمایش‌های بزرگتر استایل‌ها را اضافه کنید. این روش باعث می‌شود که کدهای اضافی برای موبایل تولید نشوند.

  • استفاده از واحدهای نسبی (em و rem): برای اندازه‌دهی متون و فضاها از واحدهای نسبی مانند em و rem استفاده کنید تا با تغییر اندازه صفحه‌نمایش، متن و چیدمان‌ها متناسب تغییر کنند.

  • پرهیز از استفاده بیش از حد از Media Queries: برای کاهش پیچیدگی و بهینه‌سازی کدها، تنها برای Breakpoints اصلی از Media Queries استفاده کنید.

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

 

نتیجه‌گیری

استفاده از Media Queries یکی از مهارت‌های کلیدی برای طراحی وب‌سایت‌های واکنش‌گرا است. با استفاده از Media Queries می‌توانید استایل‌ها و چیدمان‌ها را برای اندازه‌های مختلف تنظیم کنید و وب‌سایتی بسازید که در تمامی دستگاه‌ها خوانا و زیبا باشد. با تمرین و اجرای این اصول، می‌توانید مهارت‌های طراحی واکنش‌گرا خود را بهبود بخشید و تجربه کاربری بهتری برای کاربران خود فراهم کنید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

مطالعه بیشتر
روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for
1404/09/28 21:24

روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for

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

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

مطالعه بیشتر
آموزش کامل کار با اعداد و توابع ریاضی در PHP (کامل و کاربردی)
1405/04/27 21:51

آموزش کامل کار با اعداد و توابع ریاضی در PHP (کامل و کاربردی)

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

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

مطالعه بیشتر
JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد
1402/06/28 23:35

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

مطالعه بیشتر
آموزش جامع مدیریت خطاها در PHP بر اساس استانداردهای گوگل
1405/05/01 20:23

آموزش جامع مدیریت خطاها در PHP بر اساس استانداردهای گوگل

مطالعه بیشتر
آموزش استفاده از position در CSS: نحوه موقعیت‌دهی عناصر در صفحات وب
1403/08/09 20:59

آموزش استفاده از position در CSS: نحوه موقعیت‌دهی عناصر در صفحات وب

مطالعه بیشتر
درک و استفاده از Watchers در Vue.js | آموزش Watch با مثال کاربردی
1404/09/28 22:00

درک و استفاده از Watchers در Vue.js | آموزش Watch با مثال کاربردی

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

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

مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
1403/08/11 20:50

آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر

مطالعه بیشتر
آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var
1402/06/18 22:41

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

مطالعه بیشتر

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