نامگذاری اصولی
🔰 کلاس در CSS چیست؟
کلاس (Class) یک ویژگی در HTML است که به عناصر یک نام گروهی میدهد تا بتوانیم با CSS به آنها استایل بدهیم.
✅ یک کلاس میتواند روی چندین عنصر استفاده شود.
✅ هر عنصر میتواند چندین کلاس داشته باشد.
کلاس در CSS یک انتخابگر است که به ما اجازه میدهد به یک یا چند عنصر HTML، استایل یکسانی بدهیم.
<div class=“نام-کلاس”>محتوا</div>
<!– در CSS –>
.نام-کلاس {
color: blue;
font-size: 18px;
}
یک المان با کلاس box
المان دوم با همان کلاس – هر دو یک استایل دارند
📝 قوانین نامگذاری کلاسها
❌ اشتباهات رایج
❌ غلط .box-@home
❌ غلط .box color
❌ غلط .Box (با حروف بزرگ)
❌ غلط .box?name
✅ قوانین صحیح
✅ صحیح .box-home
✅ صحیح .box_color
✅ صحیح .boxHome
✅ صحیح ._box
| قانون | توضیح | مثال |
|---|---|---|
| حروف و اعداد | فقط حروف انگلیسی، اعداد، خط تیره و زیرخط | .header-box, .card_1 |
| شروع با حرف | نباید با عدد شروع شود | .box1 ✅ | .۱box ❌ |
| بدون فاصله | از خط تیره یا زیرخط استفاده کنید | .main-title, .main_title |
| حروف کوچک | بهتر است همه حروف کوچک باشند | .navbar (بهتر از .NavBar) |
🎯 متدولوژیهای محبوب نامگذاری
۱. BEM
Block__Element–Modifier
.menu__item–active
.btn__icon–small
۲. OOCSS
شیءگرا
.card-rounded
.text-large
۳. SMACSS
دستهبندی
.is-hidden (state)
.theme-dark (theme)
✏️ تمرین ۱: ساخت کلاسهای ساده
سه کلاس CSS به نامهای زیر ایجاد کنید:
.title-red– رنگ قرمز، اندازه ۲۴px.title-blue– رنگ آبی، اندازه ۲۴px.title-green– رنگ سبز، اندازه ۲۴px
سپس در HTML از هر کلاس برای یک عنوان استفاده کنید.
<h2 class=“title-red”>عنوان قرمز</h2>
<h2 class=“title-blue”>عنوان آبی</h2>
<h2 class=“title-green”>عنوان سبز</h2>
<!– CSS –>
.title-red {
color: #ef4444;
font-size: 24px;
}
.title-blue {
color: #3b82f6;
font-size: 24px;
}
.title-green {
color: #10b981;
font-size: 24px;
}
عنوان قرمز
عنوان آبی
عنوان سبز
یک کلاس به نام .card ایجاد کنید که:
- پسزمینه: خاکستری روشن (#f9f9f9)
- حاشیه: ۱px خاکستری
- گردی گوشه: ۸px
- فاصله داخلی: ۲۰px
سپس سه کارت با محتوای متفاوت ایجاد کنید.
<div class=“card”>
<h3>کارت شماره ۱</h3>
<p>محتوای کارت اول</p>
</div>
<div class=“card”>
<h3>کارت شماره ۲</h3>
<p>محتوای کارت دوم</p>
</div>
<div class=“card”>
<h3>کارت شماره ۳</h3>
<p>محتوای کارت سوم</p>
</div>
<!– CSS –>
.card {
background-color: #f9f9f9;
border: 1px solid #ddd;
border-radius: 8px;
padding: 20px;
margin-bottom: 15px;
}
کارت شماره ۱
محتوای کارت اول
کارت شماره ۲
محتوای کارت دوم
کارت شماره ۳
محتوای کارت سوم
سه کلاس برای دکمهها ایجاد کنید:
.btn-small– اندازه ۱۲px، فاصله ۸px ۱۶px.btn-medium– اندازه ۱۶px، فاصله ۱۲px ۲۴px.btn-large– اندازه ۲۰px، فاصله ۱۶px ۳۲px
همگی پسزمینه بنفش (#۸b5cf6) و رنگ سفید داشته باشند.
<button class=“btn-small”>دکمه کوچک</button>
<button class=“btn-medium”>دکمه متوسط</button>
<button class=“btn-large”>دکمه بزرگ</button>
<!– CSS –>
.btn-small {
background-color: #8b5cf6;
color: white;
border: none;
border-radius: 6px;
font-size: 12px;
padding: 8px 16px;
cursor: pointer;
}
.btn-medium {
background-color: #8b5cf6;
color: white;
border: none;
border-radius: 6px;
font-size: 16px;
padding: 12px 24px;
cursor: pointer;
}
.btn-large {
background-color: #8b5cf6;
color: white;
border: none;
border-radius: 6px;
font-size: 20px;
padding: 16px 32px;
cursor: pointer;
}
یک المان با دو کلاس ایجاد کنید:
.box– پسزمینه آبی، گردی ۸px، فاصله ۲۰px.border-red– حاشیه قرمز ۲px
یک div که هم کلاس box و هم border-red دارد بسازید.
<div class=“box border-red”>
این یک المان با دو کلاس است
</div>
<!– CSS –>
.box {
background-color: #3b82f6;
color: white;
border-radius: 8px;
padding: 20px;
}
.border-red {
border: 2px solid #ef4444;
}
یک منوی ساده با کلاسهای زیر ایجاد کنید:
.nav-menu– کلاس اصلی منو (پسزمینه خاکستری، بدون بولت).nav-item– آیتمهای منو (فاصله ۱۰px، نمایش افقی).nav-link– لینکها (بدون زیرخط، رنگ تیره).nav-link:hover– هاور (رنگ بنفش، زیرخط)
منو شامل ۴ آیتم باشد: خانه، محصولات، خدمات، تماس با ما
<ul class=
✅ درست ✅
- .product-card ✓
- .card1 ✓
- .product_title ✓
- .badgeNew ✓
- .a ✓
- .box1 ✓
❌ نادرست ❌
- .۱۲۳product ✗ (شروع با عدد)
- .product card ✗ (فاصله)
- .product@badge ✗ (@ غیرمجاز)
- .card%price ✗ (کاراکتر خاص)
.a { color: red; }
.b { color: blue; }
.myBox { color: green; }
.product-title { color: orange; }
.card_1 { color: purple; }
کلاسها به حروف بزرگ و کوچک حساس هستن!
.ProductCard با .productcard فرق داره.
یک کارت محصول بسازید که شامل عنوان، توضیحات و یک برچسب “تخفیف ویژه” باشد. از کلاسهای دلخواه (مثلاً .a، .b، .c) استفاده کنید.
هدفون بیسیم
کیفیت صدای عالی با ۲۴ ماه گارانتی
- از کلاس .a برای کارت اصلی استفاده کنید
- از کلاس .b برای برچسب استفاده کنید
- از کلاس .c برای عنوان استفاده کنید
<div class=”a“>
<div class=”b“>🎁 تخفیف ویژه</div>
<h3 class=”c“>هدفون بیسیم</h3>
<p>کیفیت صدای عالی با ۲۴ ماه گارانتی</p>
</div>
.a {
background: #f59e0b;
color: white;
padding: 20px;
border-radius: 15px;
}
.b {
background: white;
color: #f59e0b;
padding: 5px 15px;
border-radius: 25px;
display: inline-block;
}
.c {
margin: 10px 0;
font-size: 20px;
}
✅ نکته: هر اسم دلخواهی میتونستید بذارید، مهم یکسان بودن اسم کلاس در HTML و CSS هست.
یک دکمه بسازید که همزمان دو کلاس داشته باشد: یک کلاس برای استایل پایه و یک کلاس برای حالت ویژه (مثلاً دکمه قرمز برای هشدار).
<button class=”btn“>دکمه معمولی</button>
<button class=”btn alert“>دکمه هشدار</button>
.btn {
background: #3b82f6;
color: white;
padding: 15px 30px;
border: none;
border-radius: 8px;
}
.alert {
background: #ef4444;
border-radius: 50px;
}
💡 وقتی چند کلاس داریم، با فاصله از هم جدا میشن: class=”btn alert”
یک کارت محصول با کلاسهای تکحرفی (x, y, z) طراحی کنید که شامل تصویر، عنوان، قیمت و دکمه خرید باشد.
لپ تاپ ایسوس
<div class=”x“>
<div class=”y“>📷</div>
<h3 class=”z“>لپ تاپ ایسوس</h3>
<div class=”w“>۲۵,۰۰۰,۰۰۰ تومان</div>
<button class=”v“>خرید</button>
</div>
.x { background: white; padding: 20px; border-radius: 10px; }
.y { background: #e2e8f0; height: 150px; border-radius: 10px; }
.z { color: #0f172a; }
.w { color: #f59e0b; font-size: 24px; font-weight: bold; }
.v { background: #f59e0b; color: white; padding: 10px; border: none; }
یک سیستم برچسب طراحی کنید که یک کلاس پایه .tag داشته باشد و کلاسهای جداگانه برای رنگهای مختلف (مثلاً .tag-sale، .tag-new).
تخفیف دار
جدید
<span class=”tag“>پیشفرض</span>
<span class=”tag sale“>تخفیف دار</span>
<span class=”tag new“>جدید</span>
.tag {
background: #10b981;
color: white;
padding: 8px 20px;
border-radius: 50px;
display: inline-block;
}
.sale { background: #ef4444; }
.new { background: #3b82f6; }
دو کلاس .dark-mode و .light-mode تعریف کنید و یک کارت محصول طراحی کنید که با تغییر کلاس، رنگبندی آن عوض شود.
حالت تاریک
این کارت در حالت تاریک است
حالت روشن
این کارت در حالت روشن است
<div class=”card dark-mode“>
<h4>حالت تاریک</h4>
<p>این کارت در حالت تاریک است</p>
</div>
<div class=”card light-mode“>
<h4>حالت روشن</h4>
<p
