آموزش اصول طراحی سایت واکنش‌گرا یا Responsive Webdesign

AMIB

New Member
روز به روز بر تعداد کسانی که از ابزارهای قابل حمل برای دسترسی به اینترنت استفاده می‌کنند افزوده می‌شود. طراحی سایت به گونه‌ای که در هر عرض و طول صفحه قابل استفاده باشد اصطلاحا «طراحی واکنش‌گرا» یا «Responsive webdesign» نامیده می‌شود.

برای ایجاد یک طرح واکنش‌گرا دانستن چند نکته ضروری است که در این نوشته به اختصار آن‌ها را مرور می‌کنیم.

برای دیدن آموزش به همراه قطعه کدهای لازم اینجا کلیک کنید
 
آخرین ویرایش:
روز به روز بر تعداد کسانی که از ابزارهای قابل حمل برای دسترسی به اینترنت استفاده می‌کنند افزوده می‌شود. طراحی سایت به گونه‌ای که در هر عرض و طول صفحه قابل استفاده باشد اصطلاحا «طراحی واکنش‌گرا» یا «Responsive webdesign» نامیده می‌شود.

برای ایجاد یک طرح واکنش‌گرا دانستن چند نکته ضروری است که در این نوشته به اختصار آن‌ها را مرور می‌کنیم.
[h=3]Viewport[/h] مرورگرهای موبایل برای سازگاری با سایت‌هایی که در گذشته طراحی شده‌اند، از مفهومی به نام Viewport برای نمایش سایت‌ها استفاده می‌کنند. Viewport فضایی مجازی است که معمولا حدود ۱۰۰۰ پیکسل عرض دارد. مرورگر موبایل سایت را در این فضای مجازی نمایش می‌دهد و سپس این تصویر را در فضای واقعی نمایشگر موبایل یا تبلت قرار می‌دهد.
نخستین گام در طراحی واکنش‌گرا، اطلاع رسانی به مرورگر برای تغییر اندازه‌ی Viewport است تا به جای ۱۰۰۰ یا ۹۸۰ پیکسل پیش‌فرض، فضای مورد نظر برنامه‌نویس را به Viewport اختصاص دهد.
تغییر اندازه‌ی Viewport با استفاده از تگ meta در سرآمد فایل html به انجام می‌رسد.
<head>
<meta name="viewport" content="width=480">
</head>

همان‌گونه که مشاهده می‌کنید، در مثال بالا عرض Viewport برابر ۴۸۰ پیکسل مشخص شده است. این مقدار حداقل مقدار ممکن است. چنانچه عرض نمایشگر موبایل بیش از ۴۸۰ پیکسل باشد، عرض Viewport هم افزایش خواهد یافت.
شیوه‌ی دیگر در تغیین مقدار Viewport، تعیین آن با عرض فیزیکی نمایشگر است. برای این کار از کد زیر استفاده می‌شود:
<meta name="viewport" content="width=device-width">

[h=3]اندازه‌ی مجازی[/h] به دلیل تراکم بیشتر پیکسلی در موبایل‌های امروزی در مقایسه با تراکم متداول در نمایشگرهای لپ‌تاپ و کامپیوترهای شخصی، مرورگرهای موبایل ممکن است هر پیکسل را بزرگتر از یک پیکسل به نمایش درآورند. به این معنی که مثلا اگر عرض یک عنصر ۲۰۰ پیکسل مشخص شود، ممکن است این مقدار مساوی ۴۰۰ پیکسل به نمایش درآید.
درصد بزرگنمایی پیکسل در مرورگرهای مختلف و در دستگاه‌های مختلف و در سیستم‌عامل‌های مختلف، متغیر است. بنابراین یکی از مهم‌ترین نکات در طراحی واکنش‌گرا، عدم اعتماد به انداز‌ه‌ی پیکسل‌ها است.
در سایت Screen Sizes می‌توانید اندازه‌ی واقعی و مجازی پیکسل در ابزارهای مختلف را مشاهده کنید.
برای مثال گوشی Galaxy SII دارای ۴۸۰ پیکسل واقعی و ۳۲۰ پیکسل مجازی است. به عبارت دیگر، اگر شما یک تصویر با عرض ۳۲۰ پیکسل را در این گوشی به نمایش در بیاورید، این تصویر ۴۸۰ پیکسل فضا اشغال خواهد کرد.
بهترین راه حل برای پایداری طرح، استفاده از واحدهای فیزیکی مانند point، cm، و … است

[h=3]بزرگنمایی[/h] مرورگرهای موبایل ممکن است به صورت پیش‌فرض صفحات شما را بزرگنمایی یا کوچکنمایی کنند. از موارد قابل کنترل در تگ meta اندازه‌ی بزرگنمایی و کوچک‌نمایی است.
<meta name="viewport" content="width=480, initial-scale=1, maximum-scale=2">

در کد بالا بیشترین اندازه‌ی بزرگنمایی ۲ برابر و اندازه‌ی پیش‌فرض آن ۱ تعیین شده است.
عملکرد خاص مرورگر سافاری ممکن است باعث شود بخواهید همیشه مقدار maximum-scale را برابر ۱ قرار دهید. این مرورگر چنانچه صفحه‌ی موبایل گردانده شود تا از حالت عمودی به افقی درآید، صفحه را بار دیگر پردازش نمی‌کند و همان صفحه‌ی عمودی را بزرگنمایی می‌کند تا در عرض صفحه جای بگیرد. با تعیین مقدار maximum-scale به ۱، این عملکرد سافاری اصلاح می‌شود. البته این کار سبب می‌شود تا کاربران دیگر قادر به بزرگنمایی صفحه نباشند که خود یک اشکال به حساب می‌آید.
[h=3]عرض حداقل و حداکثر[/h] برای آنکه صفحات وب در همه‌جا به بهترین شکل ممکن نمایش داده شوند، لازم است تا عرض حداقل و حداکثر برای عنصر body تعیین شود. با توجه به جدول سایت Screen Sizes که بالاتر مشاهده کردید، حداقل عرض مجازی می‌تواند ۳۲۰ پیکسل و با توجه به آخرین آمار استفاده کنندگان لپ‌تاپ و کامپیوتر، حداکثر عرض مناسب، ۱۰۰۰ پیکسل است. البته ممکن است با توجه به تقسیم‌پذیری بهتر ۹۶۰ در مقایسه با ۱۰۰۰، بخواهید از این عدد استفاده کنید.
[h=3]دید جعبه‌ای یا بر پایه‌ی ماژول[/h] در طراحی واکنش‌گرا، لازم است تا محتوای ما در جعبه‌های مجزا قرار بگیرند تا امکان جابجایی یا حذف آن‌ها در صورت نیاز فراهم شود. استفاده از تصویرهای بزرگ یا محتوای جدولی که قابلیت تغییر شکل و حذف را به سادگی ندارند، یک مانع در برابر طراحی واکنش‌گرا به حساب می‌آیند.
[h=3]ویژگی‌های خاص شیوه‌نامه‌های CSS برای پیاده‌سازی طرح واکنش‌گرا[/h] مهم‌ترین ویژگی 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;
}
}

همان گونه که مشاهده می‌کنید، شاید لازم شود به ازای هر عنصر، چندین حالت مختلف از نمایش طراحی شود و گاهی لازم شود تا یک عنصر به صورت کامل از دید مخفی شود.
[h=3]تصویرها[/h] دانستن دو نکته در مورد تصویرها الزامی است. نخست انتخاب اندازه‌ی مناسب برای تصویرها طوری که کیفیت آن‌ها در هنگام نمایش کم نشود و حجم آن‌ها هم متناسب با محدودیت‌های ارتباطی شبکه‌های موبایل باشد و نکته‌ی دوم تغییر عرض خودکار تصویر بر اساس عرض صفحه است.
بهتر است اندازه‌ی تصویر مساوی بزرگترین اندازه‌ی پیکسل‌های واقعی نمایشگر کامپیوتر در نظر گرفته شود. برای مثال عدد ۱۰۰۰ یا ۱۳۶۶ می‌تواند مقدار مناسبی باشد.
در نمایشگرهای کوچکتر، با تعیین اندازه‌ی درصدی عرض و تعیین نکردن ارتفاع یا قرار دادن مقدار 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 تعیین کرد.
[h=3]اندازه‌ی فونت‌ها[/h] بهترین واحد برای مشخص کردن، اندازه‌ی فونت‌ها واحدهای فیزیکی هستند. برای مثال تعیین اندازه‌ی فونت پیش‌فرض صفحه با مقدار “14pt” به جای “14px” و تعیین اندازه‌ی عنصرهای داخلی بر اساس «درصد» یا «em» راه حلی مطمئن برای داشتن نوشته‌های واکنش‌گرا است.


لطفا هرگونه پیشنهاد یا اشکال مرتبط با مطالب این صفحه را برایم بفرستید تا در بازبینی‌های بعدی اصلاح شوند

منبع
 

جدیدترین ارسال ها

بالا