Aturan Spesifisitas dalam CSS
Dalam contoh sebelumnya, kedua selector sama dan memiliki prioritas yang sama. Ini berarti, properti yang menang adalah yang ditulis lebih bawah.
Ada juga situasi di mana satu elemen halaman sesuai dengan beberapa selector. Dalam hal ini, jika terjadi konflik properti, yang menang adalah selector yang lebih spesifik, yaitu selector yang lebih tepat. Mari kita bahas aturan spesifisitas.
Aturan pertama
Kelas selalu mengalahkan selector tag:
<p class="text">text</p>
p {
color: red;
}
.text {
color: green; /* warna ini yang akan diterapkan */
}
:
Aturan kedua
Identifier selalu mengalahkan kelas:
<p id="elem" class="text">text</p>
.text {
color: red;
}
#elem {
color: green; /* warna ini yang akan diterapkan */
}
:
Aturan ketiga
Dalam kondisi yang setara, yang menang adalah selector yang memiliki lebih banyak bagian. Misalnya, jika kita memiliki dua selector tag, maka yang menang adalah yang memiliki lebih banyak tag:
<div>
<p>text</p>
</div>
p {
color: red;
}
div p {
color: green; /* warna ini yang akan diterapkan */
}
:
Jika ada dua selector kelas, maka yang menang adalah yang menetapkan lebih banyak kelas (jika ada selector tag di sana, maka itu tidak berpengaruh):
<div class="block">
<p class="text">text</p>
</div>
.text {
color: red;
}
.block .text {
color: green; /* warna ini yang akan diterapkan */
}
: