آموزش طراحی قالب واکنش گرا Responsive
روز به روز به تعداد کسانی که از ابزارهای قابل حمل برای دسترسی به اینترنت استفاده میکنند شامل تبلت و گوشی های لمسی مدل بالا افزوده میشود. ریسپانسیو به معنای پاسخ گرا یا واکنشی می باشد. به عبارتی طراحی وب سایت به شیوه ای می باشد که در صفحات مختلف و ابزارهای متفاوت سایت به درستی نمایش داده می شود. طراحی سایت به گونهای که در هر عرض و طول صفحه قابل استفاده باشد اصطلاحا طراحی واکنش گرا یا Responsive web design نامیده میشود. برای ایجاد یک طرح واکنش گرا دانستن چند نکته الزامیاست بنابراین توجه شما را به آن ها جلب می کنیم.
: Viewport
مرورگرهای موبایل برای سازگاری با سایت هایی که در زمان گذشته طراحی شده اند از مفهومی به نام Viewport برای نمایش سایتها استفاده میکنند. Viewport فضایی مجازی است که معمولا حدود ۱۰۰۰ پیکسل عرض دارد و مرورگر موبایل یا تبلت سایت را در این فضای مجازی نمایش میدهد و سپس این تصویر را در فضای واقعی نمایشگر موبایل یا تبلت قرار میدهد.
گام نخست در طراحی قالب واکنش گرا چیست؟
اطلاع رسانی به مرورگر برای تغییر اندازه Viewport است تا به جای ۱۰۰۰ یا ۹۸۰ پیکسل پیش فرض فضای مورد نظر برنامه نویس را به Viewport اختصاص دهد. تغییر اندازهی Viewport با استفاده از تگ meta در سرآمد فایل html به انجام می رسد.
<head>
<meta name="viewport" content="width=480">
</head>
در مثال بالا عرض Viewport برابر ۴۸۰ پیکسل مشخص شد. کمترین مقداری که می توان تعیین کرد همین است و چنانچه عرض نمایشگر موبایل بیش از ۴۸۰ پیکسل شود عرض Viewport هم افزایش خواهد یافت.
راه کاری دیگر در تعیین مقدار Viewport تعیین آن با عرض فیزیکی نمایشگر است که برای این کار از کد زیر استفاده می شود :
<head>
<meta name="viewport" content="width=device-width">
</head>
اندازه مجازی :
به دلیل تراکم بیشتر پیکسلی در موبایل و تبلت های امروزی در مقایسه با تراکم متداول در نمایشگرهای لپ تاپ و کامپیوترهای شخصی، مرورگرهای موبایل ممکن است هر پیکسل را بزرگتر از یک پیکسل نمایش دهند. به این معنی که مثلا اگر عرض یک عنصر ۲۰۰ پیکسل مشخص شود ممکن است این مقدار مساوی ۴۰۰ پیکسل نمایش داده شود.
درصد بزرگنمایی پیکسل در مرورگرهای مختلف و در دستگاه های مختلف و در سیستمعامل های مختلف متغیر و قابل تغییر می باشد. بنابراین یکی از مهم ترین نکات در طراحی واکنش گرا عدم اعتماد به اندازهی پیکسل ها می باشد. در سایت Screen Sizes اندازه واقعی و مجازی پیکسل را در ابزارهای مختلف نشان می دهد.
برای مثال اگر یک گوشی دارای ۴۸۰ پیکسل واقعی و ۳۲۰ پیکسل مجازی باشد، به این معنی است که اگر شما یک تصویر با عرض ۳۲۰ پیکسل را در این گوشی به نمایش در بیاورید، این تصویر ۴۸۰ پیکسل فضا اشغال خواهد کرد. بهترین راه حل برای پایداری طرح، استفاده از واحدهای فیزیکی مانند point , cm , و … می باشد.
بزرگنمایی کردن تصاویر :
مرورگرهای موبایل ممکن است به صورت پیش فرض صفحات شما را بزرگنمایی یا کوچکنمایی کنند. از موارد قابل کنترل در تگ meta اندازه بزرگ نمایی و کوچک نمایی هست.
<head>
<meta name="viewport" content="width=480, initial-scale=1, maximum-scale=2">
</head>
در کد بالا بیشترین اندازه بزرگ نمایی ۲ برابر و اندازه پیش فرض آن ۱ تعیین شده است.
عملکرد خاص مرورگر Safari ممکن است باعث شود که بخواهید همیشه مقدار maximum-scale را برابر ۱ قرار دهید. این مرورگر چنانچه صفحه موبایل گردانده شود تا از حالت عمودی به افقی درآید صفحه را بار دیگر پردازش نمی کند و همان صفحه عمودی را بزرگنمایی می کند تا در عرض صفحه جای بگیرد. با تعیین مقدار maximum-scale به ۱ این عملکرد Safari اصلاح میشود و البته این کار سبب می شود تا کاربران دیگر قادر به بزرگ نمایی صفحه نباشند که خود یک اشکال به حساب میآید.
عرض حداقل و حداکثر در طراحی واکنش گرا:
برای آنکه صفحات وب در همه جا به بهترین شکل ممکن نمایش داده شوند، لازم است تا عرض حداقل و حداکثر برای عنصر body تعیین شود. با توجه به جدول سایت Screen Sizes حداقل عرض مجازی میتواند ۳۲۰ پیکسل و با توجه به آخرین آمار استفاده کنندگان لپ تاپ و کامپیوترحداکثر عرض مناسب ۱۰۰۰ پیکسل است و البته ممکن است با توجه به تقسیم پذیری بهتر ۹۶۰ در مقایسه با ۱۰۰۰، بخواهید از این عدد استفاده کنید.
دید جعبه ای یا بر پایه ماژول :
در طراحی واکنش گرا لازم است تا محتوای ما در جعبه های مجزا قرار بگیرند تا امکان جابجایی یا حذف آنها در صورت نیاز فراهم شود. استفاده از تصویرهای بزرگ یا محتوای جدولی که قابلیت تغییر شکل و حذف را به سادگی ندارند، یک مانع در برابر طراحی واکنش گرا به حساب میآیند.
ویژگیهای خاص CSS برای پیادهسازی طرحی واکنش گرا :
مهمترین ویژگی CSS برای پشتیبانی طراحی واکنش گرا دستور media است. این دستور به ما کمک میکند تا بر اساس عرض صفحه ویژگیهای عنصرهای دلخواه خود را تغییر دهیم. min-width و max-width در مقابل media ابزارهایی هستند که بسیار به ما کمک خواهند کرد.
@media ( min-width : 1000px ) {
footer {
width: 1000px;
}
}
@media ( min-width: 401px ) {
footer {
display: block;
}
}
@media ( max-width: 400px ) {
footer {
display: none;
}
}
همان گونه که مشاهده میکنید شاید لازم شود به ازای هر عنصر چندین حالت مختلف از نمایش طراحی شود و گاهی لازم شود تا یک عنصر به صورت کامل از دید مخفی شود.
تصویر ها :
دانستن دو نکته در مورد تصویرها الزامی است. نخست انتخاب اندازه مناسب برای تصویرها به طوری که کیفیت آن ها در هنگام نمایش کم نشود و حجم آنها هم متناسب با محدودیت های ارتباطی شبکه های موبایل باشد و نکتهی دوم تغییر عرض خودکار تصویر بر اساس عرض صفحه است. پیشنهاد می شود اندازه تصویر مطابق با بزرگترین اندازه پیکسل های واقعی صفحه نمایشگر کامپیوتر در نظر گرفته شود. برای مثال عدد ۱۰۰۰ یا ۱۳۶۶ میتواند مقدار مناسبی باشد. در نمایشگرهای کوچکتر با تعیین اندازه درصدی عرض و تعیین نکردن ارتفاع یا قرار دادن مقدار auto برای آن می توان یک تصویر واکنش گرا در اختیار داشت.
img#header {
width: 100% ;
height : auto ;
}
تغییر اندازهی تصاویر پسزمینه هم در css به شکل زیر انجام میشود.
div#header {
width: 100%;
padding-top: 50%;
Background-image: URL (“01.jpg " );
background-repeat: no-repeat;
Background-size: 100% auto;
}
نکته قابل توجه در قطعه کد بالا استفاده از padding-top برای مشخص کردن ارتفاع div است. با توجه به اینکه معیار padding عرض عنصر والد است. با کمک آن میتوان ارتفاع یک عنصر را به صورت Responsive تعیین کرد.
اندازه فونت وب :
بهترین واحد برای مشخص کردن اندازه فونت وب واحد های فیزیکی هستند. برای مثال تعیین اندازه فونت پیش فرض صفحه با مقدار “۱۴pt” به جای “۱۴px” و تعیین اندازه عنصرهای داخلی بر اساس «درصد» یا «em» راه حلی مطمئن برای داشتن نوشته های واکنش گرا است.
نتیجه گیری:
مواردی که بیان شد فقط تعدادی از اصول پایه در طراحی واکنش گرا بودند و بدون شک یک طراح لازم است به مسائل بسیار زیاد دیگری نیز تسلط داشته باشد تا بتواند یک طرح تمام واکنش گرا طراحی کند.گاهی اوقات اگر همین اصول پایه رعایت شوند بهترین نتیجه حاصل خواهد شد.
abolfazl
سلام من میخام سایتمو ریسپانسیو کنم برای موبایل تبلت ازکجابدونم پیکسل موبایل چقدره ک داخل مدیا تغییراتو ایجادکنم
لطفا بهم کمک کنیدخیلی درگیراین موضوعم