Badając specyfikę, natknąłem się na tego bloga - http://www.htmldog.com/guides/cssadvanced/specificity/
Stwierdza, że specyficzność jest systemem punktacji dla CSS. Mówi nam, że elementy są warte 1 punkt, klasy są warte 10 punktów, a identyfikatory są warte 100 punktów. Na górze znajduje się również stwierdzenie, że te punkty są sumowane, a ogólna kwota jest specyfiką tego selektora.
Na przykład:
body = 1 punkt
body .wrapper = 11 punktów
body .wrapper #container = 111 punktów
Tak więc, korzystając z tych punktów, spodziewam się, że następujące CSS i HTML spowodują, że tekst będzie niebieski:
#a {
color: red;
}
.a .b .c .d .e .f .g .h .i .j .k .l .m .n .o {
color: blue;
}
<div class="a">
<div class="b">
<div class="c">
<div class="d">
<div class="e">
<div class="f">
<div class="g">
<div class="h">
<div class="i">
<div class="j">
<div class="k">
<div class="l">
<div class="m">
<div class="n">
<div class="o" id="a">
This should be blue.
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Dlaczego tekst jest czerwony, skoro 15 zajęć daje 150 punktów w porównaniu z 1 identyfikatorem, który daje 100 punktów?
Najwyraźniej punkty nie są sumowane; są połączone. Przeczytaj więcej na ten temat tutaj - http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html
Czy to oznacza, że klasy w naszym selektorze = 0,0,15,0
OR 0,1,5,0
?
(mój instynkt podpowiada mi, że to były, jak wiemy specyficzności wygląd selektora identyfikatora tak: 0,1,0,0
)