Pravidlá špecificity v CSS
V predchádzajúcom príklade boli oba selektory rovnaké a mali rovnakú prioritu. To znamená, že vyhrala tá vlastnosť, ktorá bola napísaná nižšie.
Vyskytujú sa aj situácie, keď viacerým selektorom zodpovedá jeden prvok stránky. V tomto prípade pri konflikte vlastností vyhrá špecifickejší, teda presnejší selektor. Pozrime sa na pravidlá špecificity.
Pravidlo prvé
Trieda vždy porazí selektor elementu:
html<p class="text">text</p>cssp {
color: red;
}
.text {
color: green; /* použije sa táto farba */
}
Результат:
Pravidlo druhé
Identifikátor vždy porazí triedu:
html<p id="elem" class="text">text</p>css.text {
color: red;
}
#elem {
color: green; /* použije sa táto farba */
}
Результат:
Pravidlo tretie
Pri rovnakých podmienkach vyhrá ten selektor, ktorý má viac častí. Napríklad, ak máme dva selektory elementov, vyhrá ten, ktorý má viac elementov:
html<div>
<p>text</p>
</div>cssp {
color: red;
}
div p {
color: green; /* použije sa táto farba */
}
Результат:
Ak sú dva selektory tried, vyhrá ten, ktorý obsahuje viac tried (ak sú v nich selektory elementov, tie nemajú vplyv):
html<div class="block">
<p class="text">text</p>
</div>css.text {
color: red;
}
.block .text {
color: green; /* použije sa táto farba */
}
Результат: