Pravila specifičnosti u CSS-u

U prethodnom primeru oba selektora su bila identična i imala su isti prioritet. To znači da je pobedilo ono svojstvo koje je napisano niže.

Postoje takođe situacije kada jedan element stranice odgovara više selektora. U ovom slučaju, ukoliko postoji konflikt svojstava, pobediće specifičniji, odnosno precizniji selektor. Hajde da pogledamo pravila specifičnosti.

Prvo pravilo

Klasa uvek pobedjuje selektor taga:

html<p class="text">text</p>
cssp {
  color: red;
}
.text {
  color: green; /* primeniće se ova boja */
}

Результат:

Drugo pravilo

Identifikator uvek pobedjuje klasu:

html<p id="elem" class="text">text</p>
css.text {
  color: red;
}
#elem {
  color: green; /* primeniće se ova boja */
}

Результат:

Treće pravilo

Pod jednakim uslovima, pobedjuje onaj selektor koji ima više delova. Na primer, ako imamo dva selektora taga, pobediće onaj koji ima više tagova:

html<div>
  <p>text</p>
</div>
cssp {
  color: red;
}
div p {
  color: green; /* primeniće se ova boja */
}

Результат:

Ako su dva selektora klasa, pobediće onaj koji ima navedeno više klasa (ukoliko tu imaju selektori tagova, oni ne utiču):

html<div class="block">
  <p class="text">text</p>
</div>
css.text {
  color: red;
}
.block .text {
  color: green; /* primeniće se ova boja */
}

Результат: