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

استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

12م آبان 1403 محراب حسن زاده
استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

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

 

معرفی تابع calc()

تابع calc() به شما اجازه می‌دهد که محاسبات ریاضی را مستقیماً در CSS انجام دهید. این ویژگی برای محاسبه اندازه‌ها و ایجاد فواصل پویا بسیار مفید است و می‌تواند با عملیات ریاضی اصلی مانند جمع (+)، تفریق (-)، ضرب (*) و تقسیم (/) استفاده شود.



.element {
  width: calc(100% - 50px);
}

 

در اینجا:

  • عرض عنصر 100% از اندازه والدش منهای 50px است.

 

کاربردهای رایج calc() در CSS

محاسبه اندازه‌های پویا

تابع calc() می‌تواند برای تعیین اندازه‌های پویا که ترکیبی از واحدهای مختلف دارند، استفاده شود. به عنوان مثال، برای محاسبه عرضی که ترکیبی از درصد و پیکسل باشد، می‌توانید از calc() استفاده کنید.



.container {
  width: calc(70% + 20px);
}

 

در اینجا:

  • عرض container به اندازه 70 درصد از اندازه والد خود بعلاوه 20 پیکسل تنظیم شده است.

 

تنظیم فواصل پویا

با استفاده از calc() می‌توانید فاصله‌های پویا و دقیق ایجاد کنید. این روش به‌ویژه در طراحی‌های واکنش‌گرا که فاصله‌های دقیق نیاز است، کاربرد دارد.



.box {
  padding: calc(10px + 1%);
}

 

در اینجا:

  • padding به صورت پویا و ترکیبی از 10 پیکسل و 1 درصد از اندازه والد تعیین شده است.

 

ترکیب واحدهای مختلف با calc()

یکی از مهم‌ترین ویژگی‌های calc() این است که می‌توانید واحدهای مختلف را با یکدیگر ترکیب کنید. به عنوان مثال، درصد، پیکسل و واحدهای واکنش‌گرا مانند vw و vh را می‌توان در یک محاسبه استفاده کرد.



.section {
  height: calc(50vh - 100px);
}

 

در اینجا:

  • ارتفاع section برابر با 50 درصد از ارتفاع صفحه نمایش منهای 100 پیکسل است.

مثال دیگر: ترکیب درصد و پیکسل



.sidebar {
  width: calc(30% - 15px);
}

 

در اینجا:

  • عرض sidebar برابر با 30 درصد اندازه والد منهای 15 پیکسل است.

 

ایجاد فاصله بین عناصر با استفاده از calc()

با استفاده از calc() می‌توانید فواصل پویا بین عناصر را تنظیم کنید. این ویژگی به شما امکان می‌دهد که فاصله‌ای دقیق بین دو عنصر ایجاد کنید و از تنظیمات ثابت پرهیز کنید.



.card {
  margin-right: calc(5vw + 10px);
}

 

در اینجا:

  • فاصله سمت راست card برابر با مجموع 5 درصد عرض صفحه نمایش و 10 پیکسل است.

 

استفاده از calc() برای تنظیم اندازه فونت

تابع calc() می‌تواند برای تعیین اندازه‌های پویا در فونت‌ها نیز استفاده شود. به عنوان مثال، اندازه فونت را می‌توانید با ترکیب واحدهای ثابت و پویا تنظیم کنید.



.title {
  font-size: calc(1em + 1vw);
}

 

در اینجا:

  • اندازه فونت به صورت پویا تنظیم شده و برابر با مجموع 1em و 1vw است.

مثال برای تنظیم پویا در عناوین



.heading {
  font-size: calc(2rem + 1vmin);
}

 

در اینجا:

  • اندازه فونت heading به صورت پویا براساس 2rem بعلاوه 1vmin تعیین شده است، که در دستگاه‌های مختلف مقیاس‌پذیری بهتری خواهد داشت.

 

استفاده از calc() برای طرح‌بندی واکنش‌گرا

calc() برای ایجاد طرح‌بندی‌های واکنش‌گرا که نیاز به فواصل و اندازه‌های پویا دارند، بسیار مفید است. این ویژگی به شما امکان می‌دهد تا اندازه‌های پویا برای طرح‌بندی ایجاد کنید که در نمایشگرهای مختلف بهینه باشند.

مثال طرح‌بندی سه‌ستونه با استفاده از calc()



.container {
  display: flex;
}

.column {
  width: calc(33.33% - 10px);
  margin: 5px;
}

 

در اینجا:

  • هر ستون در container با استفاده از calc() به اندازه یک‌سوم عرض والد منهای 10 پیکسل تنظیم شده است، که باعث می‌شود این طرح‌بندی در نمایشگرهای مختلف واکنش‌گرا باشد.

 

نکات و بهترین شیوه‌ها برای استفاده از calc()

  • استفاده از فضاهای خالی برای خوانایی بهتر: برای خوانایی بهتر کد، حتماً بین عملگرهای ریاضی مانند + و - و مقادیر فاصله قرار دهید، زیرا بدون این فاصله‌ها ممکن است مرورگرها کد را به درستی تفسیر نکنند.

                
    
    .example {
      width: calc(100% - 50px);
    }
    
                

     

  • ترکیب calc() با واحدهای واکنش‌گرا: از calc() همراه با واحدهایی مانند vw، vh و % استفاده کنید تا طراحی شما در نمایشگرهای مختلف به‌طور پویا تنظیم شود.

  • اجتناب از محاسبات پیچیده: تلاش کنید از محاسبات بیش از حد پیچیده با calc() پرهیز کنید تا کارایی و سادگی کد حفظ شود.

  • تست و بررسی در مرورگرهای مختلف: اگرچه calc() در اکثر مرورگرها پشتیبانی می‌شود، اما همواره تست کنید تا از عملکرد صحیح آن اطمینان حاصل کنید.

 

نتیجه‌گیری

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

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol
10م آبان 1403

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol

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

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

مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب
11م آبان 1403

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

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

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

مطالعه بیشتر
آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق
12م آبان 1403

آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق

مطالعه بیشتر
آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی
5م آبان 1403

آموزش کار با Webpack و Bundlers برای مدیریت پروژه‌ها: راهنمای جامع و کاربردی

مطالعه بیشتر
چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی
2م شهریور 1403

چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی

مطالعه بیشتر
آموزش قالب‌بندی متن در HTML: استفاده از تگ‌ها و CSS برای استایل‌دهی
23م مرداد 1402

آموزش قالب‌بندی متن در HTML: استفاده از تگ‌ها و CSS برای استایل‌دهی

مطالعه بیشتر
آموزش ایجاد تگ‌های صفحه‌بندی در HTML و CSS: طراحی و استایل‌دهی pagination
29م مرداد 1402

آموزش ایجاد تگ‌های صفحه‌بندی در HTML و CSS: طراحی و استایل‌دهی pagination

مطالعه بیشتر
استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی
11م آبان 1403

استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی

مطالعه بیشتر
روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for
28م آذر 1404

روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for

مطالعه بیشتر
آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها
28م مهر 1403

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

مطالعه بیشتر

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