دسته : آموزش رایگان CSS
طراحی واکنشگرا (Responsive Design) یک روش طراحی وبسایت است که برای بهبود تجربه کاربری در انواع دستگاهها، از موبایل گرفته تا دسکتاپ، مورد استفاده قرار میگیرد. یکی از ابزارهای اصلی برای دستیابی به طراحی واکنشگرا Media Queries در CSS است. Media Queries به شما امکان میدهد استایلهای متناسب با ابعاد و شرایط مختلف صفحهنمایش را تنظیم کنید. در این مقاله، نحوه استفاده از Media Queries و اصول کلیدی برای ایجاد وبسایتهای واکنشگرا را یاد خواهیم گرفت.
Media Queries یک ویژگی در CSS است که به شما امکان میدهد استایلها را بر اساس ویژگیهای صفحهنمایش (مانند عرض، ارتفاع، جهت نمایش و رزولوشن) تغییر دهید. این ویژگی برای طراحی وبسایتهای واکنشگرا ضروری است زیرا کمک میکند طرح، چیدمان و استایلها متناسب با اندازه صفحهنمایش کاربران تغییر کند و در نتیجه تجربه کاربری بهتری ایجاد شود.
Media Queries به شما امکان میدهد که اندازه و نوع صفحهنمایش را کنترل کرده و استایلهای خاصی را در شرایط خاص اعمال کنید. ساختار Media Queries به شکل زیر است:
@media (شرط) {
/* استایلهایی که برای شرط تعیینشده اعمال میشوند */
}
مثال ساده Media Query
@media (max-width: 768px) {
body {
background-color: lightblue;
}
}
در اینجا، اگر عرض صفحهنمایش کمتر از 768 پیکسل باشد، رنگ پسزمینه صفحه به آبی روشن تغییر میکند.
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 (max-width: 768px) {
.menu {
display: none;
}
.hamburger-menu {
display: block;
}
}
/* نمایش منوی کامل در دسکتاپ */
@media (min-width: 769px) {
.menu {
display: flex;
}
.hamburger-menu {
display: none;
}
}
در اینجا:
در صفحهنمایشهای کوچک، منوی اصلی پنهان و منوی همبرگری نمایش داده میشود.
در صفحهنمایشهای بزرگ، منوی کامل به صورت افقی نمایش داده میشود.
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 تنظیم کنید.
img {
width: 100%;
height: auto;
}
@media (min-width: 768px) {
img {
width: 50%;
}
}
در اینجا:
تصاویر در صفحهنمایشهای کوچک به عرض کامل عنصر والد تنظیم میشوند.
در صفحهنمایشهای بزرگتر، تصاویر به 50 درصد کاهش مییابند تا فضای بیشتری در اختیار سایر محتواها قرار گیرد.
Flexbox ابزاری مناسب برای ایجاد طرحهای واکنشگرا است و میتوانید با Media Queries جهت قرارگیری، فاصلهها و چیدمان عناصر را برای اندازههای مختلف تنظیم کنید.
مثال استفاده از Flexbox و Media Queries
.container {
display: flex;
flex-direction: column;
}
@media (min-width: 768px) {
.container {
flex-direction: row;
}
}
در اینجا:
در صفحههای کوچک، عناصر به صورت عمودی چیده میشوند.
در تبلت و دسکتاپها، عناصر به صورت افقی کنار هم قرار میگیرند.
با استفاده از 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 میتوانید استایلها و چیدمانها را برای اندازههای مختلف تنظیم کنید و وبسایتی بسازید که در تمامی دستگاهها خوانا و زیبا باشد. با تمرین و اجرای این اصول، میتوانید مهارتهای طراحی واکنشگرا خود را بهبود بخشید و تجربه کاربری بهتری برای کاربران خود فراهم کنید.
نظری یافت نشد
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
28م شهریور 1402
مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
2م بهمن 1402
مطالعه بیشتر
آموزش استفاده از cubic-bezier در CSS برای انیمیشنهای سفارشی و حرفهای
12م آبان 1403
مطالعه بیشتر
آموزش تگهای زمان و مکان در HTML: استفاده از time و location در صفحات وب
29م مرداد 1402
مطالعه بیشتر
الگوهای رایج برنامهنویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثالها
1م آبان 1403
مطالعه بیشتر
آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگها و ایجاد افکتهای جذاب
12م آبان 1403
مطالعه بیشتر
آموزش ترانزیشنها و انیمیشنهای نرم با CSS: ایجاد افکتهای پویا و واکنشگرا
10م شهریور 1402
مطالعه بیشتر
توابع فلش (Arrow Functions) در جاوا اسکریپت: سادهسازی کد با استفاده از ES6
2م شهریور 1403
مطالعه بیشتر
مفهوم برنامهنویسی همزمان و ناهمزمان در جاوا اسکریپت: تفاوتها، مثالها و کاربردها
29م مهر 1403
مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
11م آبان 1403
مطالعه بیشتر
آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثالهای کاربردی
4م آبان 1403
مطالعه بیشتر
آموزش تگهای پیوندی و اتصالی در HTML: ایجاد لینکهای داخلی و خارجی
29م مرداد 1402
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد