سلام رفیق! 👋 چطوری؟ خوش اومدی به جلسه ۱۹ آموزش HTML از رایا وردپرس. تا حالا شده یه سایت رو توی گوشی باز کنی و ببینی همه چی به هم ریخته؟ 😕 یا مثلاً مجبور بشی برای خوندن متن، دائم زوم کنی؟ اینا نشونههای یه طراحی غیر واکنش گرا هستن.
توی این جلسه قراره بهت بگم طراحی واکنشگرا (Responsive Design) چیه و چطور میتونی یه سایت بسازی که روی همهی دستگاهها، از موبایل گرفته تا تبلت و دسکتاپ، درست و شیک نمایش داده بشه😉
اگه میخای طراحی ریسپانسیو رو یاد بگیری چشم از این جلسه برندار و تا اخر این پست منو همراهی کن 🙂
طراحی واکنش گرا (Responsive Design) چیه؟ 🤔
طراحی واکنشگرا یعنی سایتت بتونه خودش رو با اندازه صفحه نمایش کاربر هماهنگ کنه. به عبارت دیگه، وقتی یکی سایتت رو روی گوشی، لپتاپ یا حتی تلویزیون باز کنه، همهی المانهای صفحه متناسب با صفحه نمایش تنظیم بشن و به هم نریزن.
📣 اینجا محل دیده شدن تبلیغ شماست کلیک کن AD
این نوع طراحی باعث میشه:
- نیازی به زوم کردن یا اسکرول افقی نباشه 🚫
- همهی دکمهها و متنها خوانا باشن 📝
- ظاهر سایت روی همه دستگاهها یکسان و مرتب باشه 📏
🧐 چرا باید واکنش گرا طراحی کنیم؟
بیا با یه مثال شروع کنیم: فرض کن یه مغازه کفشفروشی داری که فقط سایز ۴۰ موجوده! حالا اگه یه مشتری با سایز کوچکتر یا بزرگتر بیاد، هیچ انتخابی نداره و بدون خرید میره. یه سایت غیر واکنش گرا هم همین مشکل رو داره! اگه روی موبایل یا تبلت درست نمایش داده نشه، کاربر سردرگم میشه و سایت رو ترک میکنه. پس اگه نمیخوای مشتریاتو از دست بدی، حواست به ریسپانسیو بودن سایتت باشه! 👟📱 مهم ترین دلایلی که چرا باید یه سایت ریسپانسیو باشه رو پایین برات توضیح دادم:
۱. افزایش بازدید از موبایل: بیش از ۵۰٪ کاربران وب از موبایل استفاده میکنن! 📱📊
- موبایل اولویت اول کاربران وبه!: اگه سایتت تو موبایل بهم ریخته باشه، بیشتر از ۵۰٪ بازدیدکنندهات رو از دست میدی!
- مثال: سایت فروشگاهی رو تصور کن که محصولاتش تو موبایل نصفه نمایش داده میشن. کاربر نمیتونه قیمت رو ببینه، دکمه “خرید” رو نمیبینه و در نهایت… میره رقیبت رو پیدا میکنه! 😱
- نکته طلایی: طراحی واکنشگرا مثل یه فروشنده حرفهایه که به همه مشتری ها (موبایل، تبلت، دسکتاپ) به یک اندازه توجه میکنه!
۲. بهبود سئو: گوگل عاشق سایت های واکنش گراست! 🔍🚀
- چرا گوگل واکنشگرا رو دوست داره؟ چون میخواد کاربرانش بهترین تجربه رو داشته باشن! سایتهای سازگار با موبایل، رتبه بالاتری تو نتایج جستجو میگیرن.
- مثال: دو سایت A و B رو در نظر بگیر که محتوای یکسان دارن. سایت A واکنش گرا هست، سایت B نیست. گوگل سایت A رو تو صفحه اول میذاره، سایت B رو صفحه پنجم! 😅
۳. کاهش هزینهها: یه سایت برای همه، نه ده سایت برای هر دستگاه! 💰🛠️
- مشکل طراحی جداگانه: قبلاً مجبور بودن برای موبایل یه نسخه، برای تبلت یه نسخه و برای دسکتاپ یه نسخه دیگه بسازن! مثل این میمونه که برای هر وعده غذا، یه آشپز جدا استخدام کنی! 👨🍳
- مزیت واکنشگرا: با یه بار طراحی، سایتت روی همه دستگاهها بهینه میشه! نگهداری راحتتر، آپدیت سریعتر و دردسر کمتر!
- مثال واقعی: یه کسبوکار کوچک رو تصور کن که بودجه محدودی داره. طراحی واکنشگرا بهش کمک میکنه به جای پرداخت هزینه برای ۳ نسخه مختلف، فقط یه سایت حرفهای داشته باشه!
✅ تکنیک های طراحی واکنش گرا و ریسپانسیو
1- متا تگ Viewport: اولین قدم برای طراحی واکنش گرا 🔍
اولین قدم اضافه کردن تگ <meta>
به بخش <head>
سایتته. این تگ به مرورگر میگه چطور صفحه رو تنظیم کنه:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
این خط به مرورگر میگه:
width=device-width
: عرض صفحه رو برابر با عرض دستگاه و صفحه نمابش کاربر قرار بدهinitial-scale=1.0
: سطح زوم اولیه 100% باشه
بدون این تگ، مرورگرهای موبایل صفحه رو با یک عرض پیشفرض (معمولاً 980px) نمایش میدن و صفحهات خیلی کوچک و غیرقابل خوندن میشه. پس استفاده از این متاتگ مهم رو فراموش نکن! 📝
2- استفاده از واحدهای نسبی به جای پیکسلی
یکی از کلیدهای طراحی واکنشگرا، استفاده از واحدهای نسبی به جای واحدهای ثابته:
- درصد (%) → مثل حرف زدن با والدش!
- مثال:
width: 50%
یعنی “عرض من رو نصف والدم کن! - اگر والد
div
باشه و عرضش1000px
، عنصر داخلش ۵۰۰px نمایش داده میشه.
- مثال:
- em → مثل یه بچهی وابسته به والد!
- مثال:
font-size: 1.5em
یعنی “اندازه فونتم رو ۱.۵ برابر والدم کن! - اگر والد فونتش
16px
باشه، این عنصر24px
میشه.
- مثال:
- rem → مثل یه شهروند قانونمند که فقط به رئیس شهر (ریشه) توجه میکنه!
- مثال:
font-size: 1.5rem
یعنی “اندازه فونتم رو ۱.۵ برابر فونت ریشه (تگ<html>
) کن! - اگر ریشه
20px
باشه، این عنصر30px
میشه، حتی اگر والدش فونت دیگهای داشته باشه!
- مثال:
- vw/vh → مثل نقاشیه که نسبت به پنجره اتاق کشیده میشه!
1vw = 1% از عرض صفحه مرورگر
1vh = 1% از ارتفاع صفحه مرورگر
- مثال:
width: 80vw
یعنی “عرض من رو ۸۰٪ از عرض صفحه مرورگر کن 🖼️
❌ مشکل واحدهای ثابت (مثل px) چیه؟
- فرض کن یه دکمه با
width: 300px
ساختی. روی موبایل (عرض ۳۶۰px)، دکمه تقریباً کل صفحه رو میگیره! اما روی دسکتاپ (عرض ۱۴۰۰px)، دکمه خیلی کوچیک به نظر میرسه! - راه حل: از
width: 50%
استفاده کن! تو موبایل ۱۸۰px و تو دسکتاپ ۷۰۰px میشه و متناسب تر نشون داده میشه به کاربر 🙂
3- استفاده از Media Queries در CSS
مدیا کوئری (Media Query) یه ابزار خیلی کاربردی و قدرتمند برای تنظیم استایلهای متفاوت بسته به ویژگیهای دستگاه هست. یعنی با استفاده از مدیا کوئری میتونی استایل و اندازه المانها رو طوری تغییر بدی که برای هر دستگاه به درستی نمایش داده بشه. مثلا ممکنه بخوای المانی توی دسکتاپ یه اندازه خاصی داشته باشه، ولی وقتی کاربر از موبایل استفاده میکنه، اندازه و استایل اون المان به طور خودکار با صفحه نمایش موبایل سازگار بشه. اینجوری وبسایتت روی هر دستگاه به بهترین شکل ممکن نمایش داده میشه.
نقاط شکست (Breakpoints) رایج:
۱. موبایل کوچک (تا ۵۷۶px):
- صفحه های باریک مثل گوشی های قدیمی 📱
- مثال:
@media (max-width: 576px) { ... }
۲. موبایل (۵۷۶px تا ۷۶۸px):
- گوشی های امروزی با صفحه های بزرگتر 📱✨
- مثال:
@media (min-width: 576px) and (max-width: 768px) { ... }
۳. تبلت (۷۶۸px تا ۹۹۲px):
- تبلت ها 📱➡️
- مثال:
@media (min-width: 768px) and (max-width: 992px) { ... }
۴. دسکتاپ (۹۹۲px تا ۱۲۰۰px):
- لپتاپ ها و مانیتورهای معمولی 💻
- مثال:
@media (min-width: 992px) and (max-width: 1200px) { ... }
۵. دسکتاپ بزرگ (بیشتر از ۱۲۰۰px):
- مانیتورهای حرفه ای و تلویزیون های هوشمند 🖥️📺
- مثال:
@media (min-width: 1200px) { ... }
📝 مثال کاربردی:
فرض کن میخوای فونت عنوان رو تو موبایل کوچیکتر کنی کد CSS ات به صورت زیر میشه :
.title {
font-size: 2rem; /* اندازه پیشفرض */
}
/* برای موبایل */
@media (max-width: 576px) {
.title {
font-size: 1.5rem; /* اندازه تو گوشی های کوچیک */
}
}
چون مدیا کوئری مربوط به CSS هست، وارد جزئیات بیشترش نمیشم، چون توی بخش CSS به طور کامل راجع بهش صحبت میکنم. فعلن در همین حد اطلاعات داشته باشین کفایت میکنه 🙂
تصاویر واکنشگرا (Responsive Images) یکی از مهمترین بخشهای طراحی واکنشگرای وب هستند. اینجا توضیح کاملتری درباره روشهای مختلف پیادهسازی تصاویر واکنشگرا با مثالهای کاربردی میآورم:
4- تصاویر واکنش گرا (Responsive Images)
تصاویر واکنشگرا به تصاویری گفته میشه که خودشون رو با اندازه صفحهنمایش و رزولوشن دستگاه کاربر تطبیق میدن. هدف از استفاده از تصاویر واکنشگرا:
- بهبود سرعت بارگذاری: دستگاههای کوچکتر تصاویر با حجم کمتر دریافت کنن
- صرفهجویی در مصرف اینترنت: به خصوص برای کاربران موبایل
- بنمایش بهینه: تضمین اینکه تصویر به درستی در هر دستگاهی نمایش داده بشه
روشهای پیاده سازی تصاویر واکنش گرا
1. استفاده از CSS برای تصاویر واکنشگرا (روش ساده)
سادهترین روش برای ایجاد تصاویر واکنشگرا استفاده از CSS است:
<img src="rayawp.jpg" style="max-width: 100%; height: auto;">
این کد از بیرون زدن تصویر از محدوده والد جلوگیری میکنه و نسبت ابعاد تصویر رو حفظ میکنه.
2. استفاده از تگ picture
این تگ بهت این امکان رو میده تا بر اساس شرایطی مانند media query، تصاویر متفاوتی رو ارائه بدی:
<picture>
<source srcset="rayawp-small.jpg" media="(max-width: 600px)">
<source srcset="rayawp.jpg" media="(min-width: 601px)">
<img src="rayawp.jpg" >
</picture>
5- طراحی وب واکنش گرا به کمک فریمورکها
فریمورکها مثل یک جعبه ابزار آماده هستن که کارت رو خیلی راحتتر میکنن. به جای اینکه خودت از صفر همه چیز رو بنویسی، میتونی از کدهای آماده و تستشده استفاده کنی.
فریمورک های محبوب برای طراحی واکنش گرا 💯
1. بوتاسترپ (Bootstrap)
2. تیلویند (Tailwind CSS)
من فقط به صورت کلی این بخش رو توضیح دادم و در بخش CSS کامل این موضوعات رو پوشش خواهم داد
نکات مهم برای تست طراحی واکنش گرا 🧪
وقتی طراحی واکنشگرات رو کامل کردی، باید اون رو به خوبی تست کنی:
- از Dev Tools مرورگر استفاده کن (F12 در کروم و فایرفاکس)
- سایت رو در دستگاههای واقعی تست کن (موبایل، تبلت، لپتاپ)
- مرورگرهای مختلف رو چک کن (کروم، فایرفاکس، سافاری، اج)
- چرخش صفحه رو تست کن (حالت افقی و عمودی در موبایل و تبلت)
همینطور میتونی از ابزارهای آنلاین تست ریسپانسیو هم کمک بگیری 🙂
نتیجه گیری 🎯
طراحی واکنشگرا دیگه یک انتخاب نیست، بلکه یک ضرورته! با دنبال کردن اصول و تکنیکهایی که در این جلسه یاد گرفتی، میتونی سایتهایی طراحی کنی که روی هر دستگاهی به زیبایی و کارآمدی نمایش داده بشن.
یادت باشه که طراحی واکنشگرا یک فرآیند مداوم هست و باید همیشه با تغییر دستگاهها و اندازههای صفحهنمایش، روشهات رو بهروز کنی.
مرسی که تا پایان این جلسه منو با نگاه قشنگت همراهی کردی امیدوارم مطالب برات مفید باشن 🙂 فعلن تا جلسه بعدی خدانگهدارت
ارسال نظر ( 0 نظر تایید شده )