آموزش جامع متغیرهای CSS
🎯 اهداف یادگیری
- درک مفهوم متغیرها در CSS
- یادگیری نحوه تعریف و استفاده از متغیرها
- آشنایی با محدوده متغیرها (Scope)
- کاربرد متغیرها در طراحی واکنشگرا
- مدیریت تم رنگ با متغیرها
📌 متغیرهای CSS چیست؟
متغیرهای CSS (که با نام Custom Properties نیز شناخته میشوند) امکان ذخیره و استفاده مجدد از مقادیر در سراسر stylesheet را فراهم میکنند:
css
:root { /* تعریف متغیر */ --primary-color: #4285f4; --padding: 15px;}.button { /* استفاده از متغیر */ background-color: var(--primary-color); padding: var(--padding);}
ویژگیهای کلیدی متغیرهای CSS:
- پیشوند --: تمامی متغیرهای CSS با دو خط تیره شروع میشوند
- تابع var(): برای دسترسی به مقدار متغیرها استفاده میشود
- محدوده (Scope): متغیرها میتوانند به صورت سراسری یا محلی تعریف شوند
📌 نحوه تعریف و استفاده از متغیرها
متغیرهای CSS را میتوان در هر جایی از stylesheet تعریف کرد، اما معمولاً در :root تعریف میشوند:
css
/* تعریف متغیرهای سراسری */:root { --main-font: 'Segoe UI', Tahoma, sans-serif; --brand-color: #1a73e8; --border-radius: 4px;}.card { /* استفاده از متغیرها */ font-family: var(--main-font); border: 1px solid var(--brand-color); border-radius: var(--border-radius);}
مزایای استفاده از متغیرها:
- کاهش تکرار کد (DRY Principle)
- قابلیت تغییر مقادیر به صورت مرکزی
- خوانایی و نگهداری بهتر کد
- امکان ایجاد تمهای پویا (Theming)
📌 محدوده متغیرها (Scope)
متغیرهای CSS میتوانند محدوده سراسری یا محلی داشته باشند:
css
/* متغیر سراسری - قابل دسترسی در تمام المانها */:root { --global-var: red;}/* متغیر محلی - فقط در این المان و فرزندانش قابل دسترسی */.container { --local-var: blue; color: var(--local-var);}
قوانین محدوده (Scope):
- محدوده سراسری: تعریف در :root - قابل دسترسی در تمام document
- محدوده محلی: تعریف در یک selector خاص - فقط در آن و فرزندانش قابل دسترسی
- اولویت: متغیرهای محلی بر متغیرهای سراسری با نام یکسان اولویت دارند
📌 مدیریت تم رنگ با متغیرها
متغیرهای CSS برای مدیریت تمهای رنگی بسیار مفید هستند:
css
:root { /* تم روشن (پیشفرض) */ --primary-bg: #ffffff; --primary-text: #212121;}/* تم تیره */.dark-mode { --primary-bg: #121212; --primary-text: #f5f5f5;}body { background-color: var(--primary-bg); color: var(--primary-text);}
تغییر تم با جاوااسکریپت:
javascript
// تغییر به تم تیرهdocument.documentElement.classList.add('dark-mode');// بازگشت به تم روشنdocument.documentElement.classList.remove('dark-mode');
مزایای استفاده از متغیرها برای تمها:
- تغییر سریع تمام رنگها با تغییر یک متغیر
- امکان ایجاد چندین تم مختلف
- قابلیت تغییر پویای تم با جاوااسکریپت
- خوانایی و سازماندهی بهتر کدهای CSS
📌 مقادیر پیشفرض و fallback
میتوان برای متغیرها مقدار پیشفرض تعریف کرد در صورتی که متغیر تعریف نشده باشد:
css
.element { /* اگر --main-color تعریف نشده باشد، از مقدار #ccc استفاده میشود */ color: var(--main-color, #ccc); /* fallbackهای چندگانه */ padding: var(--padding, var(--default-padding, 10px));}
موارد استفاده از fallback:
- پشتیبانی از مرورگرهای قدیمی: برخی مرورگرها از متغیرهای CSS پشتیبانی نمیکنند
- مقادیر اختیاری: وقتی مقدار متغیر ممکن است تعریف نشده باشد
- توسعه پذیری: اجازه میدهد دیگر توسعهدهندگان مقادیر پیشفرض را بازنویسی کنند
📌 متغیرها در مدیا کوئریها
میتوان از متغیرها برای ایجاد تغییرات واکنشگرا استفاده کرد:
css
:root { --font-size: 16px; --spacing: 8px;}@media (min-width: 768px) { :root { --font-size: 18px; --spacing: 16px; }}body { font-size: var(--font-size); padding: var(--spacing);}
مزایای این روش:
- کاهش تعداد مدیا کوئریها: تغییر چندین خاصیت با تغییر یک متغیر
- خوانایی بهتر: منطق واکنشگرایی در یک متمرکز میشود
- انعطافپذیری بیشتر: امکان تغییر مقادیر بدون نیاز به تغییر selectorها
📌 تمرین عملی
یک سیستم طراحی با متغیرهای CSS ایجاد کنید:
css
/* تمرین: سیستم طراحی با متغیرها *//* 1. تعریف رنگهای اصلی *//* 2. تعریف فاصلهها (spacing) *//* 3. تعریف سایز فونتها *//* 4. ایجاد یک دکمه با استفاده از متغیرها */
راهنمای تمرین:
- متغیرهای رنگ برای primary, secondary, error, success تعریف کنید
- متغیرهایی برای فاصلههای مختلف (کوچک، متوسط، بزرگ) ایجاد کنید
- متغیرهایی برای سایز فونتهای مختلف تعریف کنید
- یک کلاس .button ایجاد کنید که از این متغیرها استفاده کند
- تم تیره برای دکمهها ایجاد کنید
📌 قدم بعدی
در درس بعدی با انیمیشنها و ترنزیشنهای CSS آشنا خواهیم شد!