فارسی

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

خصوصیات سفارشی CSS: تسلط بر استایل‌دهی پویا برای وب جهانی

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

خصوصیات سفارشی CSS چه هستند؟

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

مزایای کلیدی استفاده از خصوصیات سفارشی CSS

چگونه خصوصیات سفارشی CSS را تعریف و استفاده کنیم

خصوصیات سفارشی CSS با استفاده از یک دو-خط تیره (--) و به دنبال آن یک نام و یک مقدار تعریف می‌شوند. آن‌ها معمولاً در یک انتخاب‌گر :root تعریف می‌شوند که باعث می‌شود در سراسر شیوه‌نامه به صورت سراسری قابل دسترسی باشند.

تعریف خصوصیات سفارشی

در اینجا نمونه‌ای از تعریف برخی از خصوصیات سفارشی رایج CSS آورده شده است:

:root {
  --primary-color: #3498db; /* یک آبی زنده */
  --secondary-color: #e74c3c; /* یک قرمز قوی */
  --font-family: 'Arial, sans-serif';
  --font-size: 16px;
  --spacing-unit: 10px;
}

افزودن کامنت به خصوصیات سفارشی برای توضیح هدف آن‌ها یک روش خوب است. استفاده از نام‌های رنگی که به راحتی در زبان‌های مختلف قابل درک هستند (مثلاً «vibrant blue») نیز برای تیم‌های بین‌المللی توصیه می‌شود.

استفاده از خصوصیات سفارشی

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

body {
  font-family: var(--font-family);
  font-size: var(--font-size);
  color: var(--primary-color, black); /* جایگزین با رنگ سیاه در صورتی که --primary-color تعریف نشده باشد */
}

.button {
  background-color: var(--secondary-color);
  padding: var(--spacing-unit) calc(var(--spacing-unit) * 2);
  border: none;
  color: white;
  cursor: pointer;
}

استایل‌دهی پویا با جاوااسکریپت

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

تنظیم مقادیر خصوصیات سفارشی با جاوااسکریپت

شما می‌توانید مقدار یک خصوصیت سفارشی را با استفاده از متد setProperty() در شیء HTMLElement.style تنظیم کنید.

// دریافت عنصر ریشه
const root = document.documentElement;

// تنظیم مقدار خصوصیت سفارشی --primary-color
root.style.setProperty('--primary-color', 'green');

مثال: یک تغییردهنده تم ساده

در اینجا نمونه‌ای از نحوه ایجاد یک تغییردهنده تم ساده با استفاده از جاوااسکریپت و خصوصیات سفارشی CSS آورده شده است:

HTML:

<button id="theme-toggle">تغییر تم</button>
<div class="container">سلام دنیا!</div>

CSS:

:root {
  --bg-color: white;
  --text-color: black;
}

.container {
    background-color: var(--bg-color);
    color: var(--text-color);
    padding: 20px;
}

JavaScript:

const themeToggle = document.getElementById('theme-toggle');
const root = document.documentElement;

themeToggle.addEventListener('click', () => {
  if (root.style.getPropertyValue('--bg-color') === 'white') {
    root.style.setProperty('--bg-color', 'black');
    root.style.setProperty('--text-color', 'white');
  } else {
    root.style.setProperty('--bg-color', 'white');
    root.style.setProperty('--text-color', 'black');
  }
});

این کد با تغییر مقادیر خصوصیات سفارشی --bg-color و --text-color بین یک تم روشن و تیره جابجا می‌شود.

استفاده از خصوصیات سفارشی با مدیا کوئری‌ها

خصوصیات سفارشی CSS می‌توانند در مدیا کوئری‌ها برای ایجاد طراحی‌های واکنش‌گرا که با اندازه‌های مختلف صفحه و جهت دستگاه سازگار می‌شوند، استفاده شوند. این به شما امکان می‌دهد تا استایل‌ها را بر اساس محیط کاربر تنظیم کرده و تجربه مشاهده بهینه را در هر دستگاهی فراهم کنید.

مثال: تنظیم اندازه فونت بر اساس اندازه صفحه

:root {
  --font-size: 16px;
}

@media (max-width: 768px) {
  :root {
    --font-size: 14px;
  }
}

body {
  font-size: var(--font-size);
}

در این مثال، اندازه فونت به طور پیش‌فرض 16 پیکسل است. با این حال، هنگامی که عرض صفحه کمتر یا مساوی 768 پیکسل باشد، اندازه فونت به 14 پیکسل کاهش می‌یابد. این تضمین می‌کند که متن در صفحه‌های کوچک‌تر خوانا باقی بماند.

آبشاری بودن و ویژگی خاص با خصوصیات سفارشی

درک آبشاری بودن و ویژگی خاص (specificity) هنگام کار با خصوصیات سفارشی CSS بسیار مهم است. خصوصیات سفارشی مانند خصوصیات عادی CSS به ارث می‌رسند. این بدان معناست که یک خصوصیت سفارشی تعریف شده روی عنصر :root توسط تمام عناصر در سند به ارث برده می‌شود، مگر اینکه توسط یک قانون خاص‌تر بازنویسی شود.

مثال: بازنویسی خصوصیات سفارشی

:root {
  --primary-color: blue;
}

.container {
  --primary-color: red; /* مقدار را برای عناصر داخل کانتینر بازنویسی می‌کند */
  color: var(--primary-color);
}

body {
  color: var(--primary-color); /* آبی خواهد بود */
}

در این مثال، --primary-color در ابتدا روی عنصر :root به رنگ آبی تنظیم شده است. با این حال، عنصر .container این مقدار را به قرمز بازنویسی می‌کند. در نتیجه، رنگ متن داخل .container قرمز خواهد بود، در حالی که رنگ متن در بقیه بدنه آبی خواهد بود.

پشتیبانی مرورگر و جایگزین‌ها

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

مثال: ارائه یک مقدار جایگزین

body {
  color: var(--primary-color, black); /* اگر --primary-color پشتیبانی نشود، به رنگ سیاه بازمی‌گردد */
}

در این مثال، اگر مرورگر از خصوصیات سفارشی CSS پشتیبانی نکند، رنگ متن به طور پیش‌فرض سیاه خواهد بود.

بهترین شیوه‌ها برای استفاده از خصوصیات سفارشی CSS

برای اطمینان از اینکه خصوصیات سفارشی CSS شما به طور مؤثر و قابل نگهداری استفاده می‌شوند، این بهترین شیوه‌ها را دنبال کنید:

تکنیک‌های پیشرفته و موارد استفاده

فراتر از اصول اولیه، خصوصیات سفارشی CSS می‌توانند برای تکنیک‌های پیشرفته‌تری استفاده شوند که راهکارهای استایل‌دهی پیچیده‌ای را امکان‌پذیر می‌سازند.

محاسبه مقادیر با calc()

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

:root {
  --base-spacing: 10px;
}

.element {
  margin: calc(var(--base-spacing) * 2);
  padding: calc(var(--base-spacing) / 2);
}

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

خصوصیات سفارشی CSS می‌توانند برای کنترل انیمیشن‌ها و ترنزیشن‌ها استفاده شوند و به شما امکان می‌دهند جلوه‌های بصری روان و پویا ایجاد کنید. تغییر یک خصوصیت سفارشی با استفاده از جاوااسکریپت، ترنزیشن را فعال کرده و اثر انیمیشن را ایجاد می‌کند.

:root {
  --rotate-degrees: 0deg;
}

.element {
  transform: rotate(var(--rotate-degrees));
  transition: transform 0.5s ease-in-out;
}

/* جاوااسکریپت برای به‌روزرسانی خصوصیت --rotate-degrees */

ایجاد پالت‌های رنگی با خصوصیات سفارشی CSS

شما می‌توانید یک پالت رنگی را با استفاده از خصوصیات سفارشی CSS تعریف کرده و سپس از این خصوصیات برای استایل‌دهی وب‌سایت خود استفاده کنید. این کار تغییر طرح رنگی وب‌سایت شما را با به‌روزرسانی ساده مقادیر خصوصیات سفارشی آسان می‌کند. اطمینان حاصل کنید که نام‌های رنگ‌ها برای تیم‌های جهانی به راحتی قابل درک باشند (مثلاً «--success-color: green;» به جای «--color-x: #00FF00;»)

:root {
  --primary-color: #007bff;
  --secondary-color: #6c757d;
  --success-color: #28a745;
  --danger-color: #dc3545;
}

.button-primary {
  background-color: var(--primary-color);
  color: white;
}

مقایسه خصوصیات سفارشی CSS با متغیرهای پیش‌پردازنده

در حالی که هم خصوصیات سفارشی CSS و هم متغیرهای پیش‌پردازنده (مانند متغیرهای Sass یا Less) به شما امکان تعریف مقادیر قابل استفاده مجدد را می‌دهند، در چندین جنبه کلیدی با هم تفاوت دارند:

به طور کلی، خصوصیات سفارشی CSS برای استایل‌دهی پویا و تم‌بندی مناسب‌تر هستند، در حالی که متغیرهای پیش‌پردازنده برای استایل‌دهی ثابت و سازماندهی کد مناسب‌ترند.

ملاحظات بین‌المللی‌سازی (i18n) و بومی‌سازی (l10n)

هنگام استفاده از خصوصیات سفارشی CSS در برنامه‌های بین‌المللی، موارد زیر را در نظر بگیرید:

ملاحظات دسترسی‌پذیری

اطمینان حاصل کنید که استفاده شما از خصوصیات سفارشی CSS تأثیر منفی بر دسترسی‌پذیری وب‌سایت شما نداشته باشد. موارد زیر را در نظر بگیرید:

نتیجه‌گیری

خصوصیات سفارشی CSS روشی قدرتمند و انعطاف‌پذیر برای ایجاد استایل‌دهی پویا و قابل نگهداری برای وب جهانی فراهم می‌کنند. با درک قابلیت‌های آن‌ها و پیروی از بهترین شیوه‌ها، می‌توانید تجربیات وب واکنش‌گرا، تم‌بندی شده و قابل دسترسی ایجاد کنید که نیازهای مخاطبان متنوع را برآورده می‌کند. از تغییردهنده‌های تم ساده گرفته تا مصورسازی‌های داده پیچیده، خصوصیات سفارشی CSS شما را قادر می‌سازند تا برنامه‌های وب جذاب‌تر و کاربرپسندتری بسازید که با نیازهای کاربران در سراسر جهان سازگار هستند. این فناوری را برای ارتقای جریان کاری توسعه وب خود و ایجاد تجربیات وب واقعاً جهانی‌شده به کار بگیرید.