CSS qoidalarining ustunlik tartibi, specificity hisoblash usuli va meros olish (inheritance) mexanizmi — misol, test va amaliy topshiriqlar bilan.
Agar bir nechta CSS qoidasi bir xil elementga mos kelsa, brauzer eng yuqori "specificity" (aniqlik darajasi)ga ega qoidani tanlaydi.
🧠 Specificity to'rtta darajali hisoblanadi: (inline, ID, class/attribute/pseudo-class, type/pseudo-element). Har biri o'zidan pastki darajadan har doim ustun.
styles.cssCSSp { color: black; } /* specificity: 0,0,0,1 */.text { color: blue; } /* specificity: 0,0,1,0 */#main { color: red; } /* specificity: 0,1,0,0 */
#main g'olib chiqadi, chunki ID class'dan yuqori.
styles.cssCSSp { color: blue !important; }.text { color: red; } /* !important g'alaba qiladi, hatto keyin yozilgan bo'lsa ham */
⚠️ Common Mistake
!importantni haddan tashqari ko'p ishlatish — bu debug qilishni qiyinlashtiradi, chunki keyingi override qilish uchun yana !important kerak bo'ladi ("specificity urushi").
🧠 Ba'zi xususiyatlar (masalan color, font-family) avtomatik ravishda bola elementlarga MEROS bo'lib o'tadi (inherit), boshqalari (masalan border, padding) o'tmaydi.
Task: Bitta elementga uchta turli selektor (type, class, ID) orqali turli ranglar bering va qaysi biri g'olib chiqishini kuzating.
Task: !important ishlatmasdan, faqat specificity orqali uchinchi tomon kutubxona CSS qoidasini bosib o'ting.
Task: Ota elementga color: blue bering va farzand elementlarda uni qanday xususiyatlar meros olishini (yoki olmasligini) DevTools orqali tekshiring.
styles.cssCSS.btn { background: blue; }.btn.primary { background: green; }
index.htmlHTML<button class="btn primary">Bosing</button>
Your Task: Tugma qaysi rangda ko'rinadi va nega?
<details> <summary>Solution</summary> Yashil (green) rangda ko'rinadi. `.btn.primary` ikkita class selektorini birlashtirgani uchun specificity'si (0,0,2,0) `.btn`ning (0,0,1,0) dan yuqori. </details>Specificity to'rt darajali tizim orqali hisoblanadi: inline > ID > class/attribute/pseudo-class > type. !important eng kuchli, lekin ehtiyotkorlik bilan ishlatilishi kerak. Ba'zi xususiyatlar (typography) meros bo'ladi, boshqalari (box model) bo'lmaydi.
!important — oxirgi chora, standart yechim emasbodyda) belgilash mumkincode.textTEXTSpecificity tartibi: inline > ID > class/attr/pseudo-class > type!important — eng kuchli, lekin ehtiyot bo'lingInherited: color, font-*, line-height, text-alignNot inherited: margin, padding, border, width, height
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslik ichidagi interaktiv muharrirda berilgan barcha amaliy topshiriqlarni bajaring va avto-tekshiruvdan o‘ting.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Laboratoriya
Laboratoriya muharririda testlarni topshiring
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: