CSS Specificity (اختصاصی بودن سلکتورها)
🔹 Specificity یعنی چی؟
وقتی چند قانون CSS برای یک المنت تعریف بشن، مرورگر باید تصمیم بگیره کدوم قانون رو اعمال کنه.
اینجا Specificity (اولویتبندی سلکتورها) وارد عمل میشه.
🔹 ترتیب اولویت در CSS
مرورگر به ترتیب زیر تصمیم میگیره:
-
!important (بالاترین اولویت)
-
Inline Styles (استایل نوشتهشده مستقیم روی تگ HTML با
style="") -
ID Selector (مثل
#header) -
Class, Attribute, Pseudo-class (مثل
.menu,[type="text"],:hover) -
Element, Pseudo-element (مثل
div,h1,::before) -
ترتیب نوشتن → اگر همهچیز مساوی باشه، قانون آخری که نوشته شده اعمال میشه.
🔹 سیستم امتیازدهی Specificity
میتونیم Specificity رو مثل امتیاز حساب کنیم:
-
Inline style → امتیاز:
1000 -
ID selector → امتیاز:
100 -
Class / Attribute / Pseudo-class → امتیاز:
10 -
Element / Pseudo-element → امتیاز:
1
🔹 مثالها
مثال ۱: کدوم رنگ اعمال میشه؟
🔹 نتیجه → متن قرمز میشه (چون #para امتیاز بیشتری داره).
مثال ۲: inline style vs CSS
🔹 نتیجه → متن بنفش میشه (چون inline style امتیاز 1000 داره).
مثال ۳: !important
🔹 نتیجه → متن آبی میشه (چون !important حتی از ID هم قویتره).
🔹 نکته حرفهای
-
استفاده زیاد از
!importantباعث کدهای نامرتب میشه ❌ -
بهترین کار اینه که ساختار انتخابگرها رو درست طراحی کنیم.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React