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

استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

16م آبان 1403 محراب حسن زاده
استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

Viewport در طراحی وب به بخش قابل مشاهده یک صفحه در مرورگر یا دستگاه کاربر گفته می‌شود و بسته به اندازه صفحه نمایش، متغیر است. واحدهای Viewport مانند vw، vh، vmin و vmax در CSS، امکان استفاده از اندازه‌های وابسته به Viewport را فراهم می‌کنند. این واحدها به خصوص در طراحی‌های واکنش‌گرا بسیار مفید هستند. در این مقاله، به معرفی Viewport و واحدهای مرتبط با آن می‌پردازیم و کاربردهای آن‌ها در CSS را بررسی می‌کنیم.

 

آشنایی با Viewport

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

به عنوان مثال:

  • در دسکتاپ، Viewport معمولاً بزرگ‌تر است.

  • در موبایل، Viewport کوچک‌تر است و ممکن است کاربر نیاز به اسکرول داشته باشد.

 

معرفی واحدهای Viewport

واحدهای Viewport به شما امکان می‌دهند که اندازه عناصر را بر اساس اندازه Viewport تعیین کنید. این واحدها بسیار واکنش‌پذیر هستند و به خصوص در طراحی‌های پاسخگو مفید واقع می‌شوند.

 

واحدهای رایج Viewport

  • vw (Viewport Width): یک واحد vw برابر با 1٪ از عرض Viewport است.

  • vh (Viewport Height): یک واحد vh برابر با 1٪ از ارتفاع Viewport است.

  • vmin: کوچکتر از عرض و ارتفاع Viewport را می‌گیرد و 1٪ آن را نشان می‌دهد.

  • vmax: بزرگتر از عرض و ارتفاع Viewport را می‌گیرد و 1٪ آن را نشان می‌دهد.

 

مثال‌هایی از استفاده از واحدهای Viewport

 

استفاده از vw و vh برای تنظیم عرض و ارتفاع



.full-width-box {
  width: 100vw;
  height: 50vh;
  background-color: lightblue;
}

 

در اینجا:

  • width: 100vw عرض عنصر را برابر با 100٪ عرض Viewport تعیین می‌کند.

  • height: 50vh ارتفاع عنصر را برابر با 50٪ ارتفاع Viewport تنظیم می‌کند.

 

استفاده از vmin برای اندازه‌دهی متناسب



.square-box {
  width: 50vmin;
  height: 50vmin;
  background-color: lightcoral;
}

 

در اینجا:

  • 50vmin به عنوان اندازه هر ضلع مربع انتخاب شده که در دستگاه‌های مختلف نسبت ثابتی خواهد داشت.

 

استفاده از vmax برای حداکثر اندازه‌دهی



.banner {
  font-size: 5vmax;
}

 

در اینجا:

  • font-size: 5vmax اندازه فونت را بر اساس بزرگترین بعد Viewport تنظیم می‌کند، که برای حفظ وضوح متون در دستگاه‌های مختلف مناسب است.

 

کاربردهای رایج Viewport Units در طراحی وب

 

ساخت بخش‌های تمام صفحه

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



.full-screen-section {
  width: 100vw;
  height: 100vh;
  background: url('background.jpg') no-repeat center center;
  background-size: cover;
}

 

در اینجا:

  • بخش full-screen-section کل صفحه را پوشش می‌دهد و برای طراحی‌های تک صفحه‌ای و اسلاید‌ها بسیار مناسب است.

 

تنظیم فونت واکنش‌گرا

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



.responsive-heading {
  font-size: 3vw;
}

 

در اینجا:

  • font-size: 3vw باعث می‌شود که اندازه فونت متناسب با عرض Viewport تنظیم شود و در دستگاه‌های مختلف به صورت پویا تغییر کند.

 

ساخت بخش‌های منطبق با نسبت ابعاد

واحدهای Viewport به شما این امکان را می‌دهند که بخش‌هایی با نسبت ابعاد ثابت در دستگاه‌های مختلف ایجاد کنید.



.aspect-ratio-box {
  width: 100vw;
  height: 56.25vw; /* برای نسبت 16:9 */
}

 

در اینجا:

  • height: 56.25vw ارتفاع با نسبت 16:9 تنظیم شده تا در نمایشگرهای مختلف نسبت تصویر ثابت بماند.

 

ترکیب واحدهای Viewport با واحدهای دیگر در CSS

گاهی اوقات برای طراحی‌های پیچیده‌تر، می‌توانید واحدهای Viewport را با سایر واحدهای CSS مانند پیکسل یا درصد ترکیب کنید.

مثال ترکیب vw با padding ثابت



.responsive-box {
  width: calc(100vw - 20px);
  height: 50vh;
  padding: 10px;
  background-color: lightgreen;
}

 

در اینجا:

  • calc(100vw - 20px) عرض عنصر را متناسب با عرض Viewport تعیین می‌کند، اما 20 پیکسل از هر دو طرف کسر می‌کند تا فضای مناسبی ایجاد شود.

 

نکات و بهترین شیوه‌ها برای استفاده از واحدهای Viewport

  • توجه به تغییرات اندازه Viewport در دستگاه‌های مختلف: در موبایل و تبلت‌ها، به خصوص در حالت افقی و عمودی، Viewport تغییر می‌کند. به این موضوع در هنگام طراحی توجه کنید.

  • ترکیب واحدهای Viewport با Media Queries: برای دستیابی به طراحی‌های واکنش‌گرا، می‌توانید واحدهای Viewport را همراه با Media Queries استفاده کنید.

  • استفاده از vmin و vmax در طراحی‌های متناسب: برای عناصر مربعی یا دایره‌ای که باید در دستگاه‌های مختلف نسبت ثابت داشته باشند، از vmin یا vmax استفاده کنید.

 

نتیجه‌گیری

واحدهای Viewport در CSS ابزارهای بسیار کاربردی برای ایجاد طراحی‌های واکنش‌گرا هستند. این واحدها به شما امکان می‌دهند که عناصر خود را به صورت متناسب و پویا با اندازه‌های مختلف نمایش دهید و تجربه کاربری بهتری را ارائه کنید. با درک و استفاده صحیح از vw، vh، vmin و vmax می‌توانید طراحی‌های جذاب و منعطفی ایجاد کنید که به طور خودکار در انواع نمایشگرها بهینه باشند.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل
4م مهر 1403

آموزش ایجاد، دسترسی و اصلاح آرایه‌ها در جاوا اسکریپت: راهنمای کامل

مطالعه بیشتر
اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ
28م شهریور 1402

اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ

مطالعه بیشتر
آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر
2م بهمن 1402

آموزش جامع توابع در جاوا اسکریپت: نحوه تعریف، فراخوانی و بازگشت مقادیر

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

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

مطالعه بیشتر
آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها
12م آبان 1403

آشنایی با Inheritance در CSS: اصول وراثت و مدیریت استایل‌ها

مطالعه بیشتر
آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها
1م آبان 1403

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

مطالعه بیشتر
آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای
18م شهریور 1402

آموزش انیمیشن‌های پیشرفته با keyframes در CSS: طراحی حرکات پویا و چند مرحله‌ای

مطالعه بیشتر
آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال
23م آذر 1404

آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال

مطالعه بیشتر
مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی
30م مهر 1403

مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی

مطالعه بیشتر
آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها
2م آبان 1403

آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها

مطالعه بیشتر
آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
10م شهریور 1402

آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child

مطالعه بیشتر
آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع
6م شهریور 1402

آموزش کامل استفاده از float، clear، text و font در CSS برای طراحی وب: راهنمای جامع

مطالعه بیشتر

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