Hauptmenü

Untermenü

Advanced CSS - Spezifität - Der Universalselektor

1. Die Wertigkeit

... ist gleich null! Der Universalselektor selber wird bei der Spezifität nicht berücksichtigt. Wir alle kennen ja wohl die Anweisung schlechthin, mit der man die Standard-Abstände für Elemente auf ein einheitliches Maß setzt.


*
{
  margin0px;
  padding0px;
}

Allerdings taucht der Universalselektor bei der Spezifität nicht auf. Obiges Beispiel bewirkt also Folgendes.

Selektor A B C D Wertigkeit
* 0 0 0 0 0 - 0 - 0 - 0

2. Aber!

Wenn man den Universalselektor in Kombination mit anderen Selektoren einsetzt, so sieht die Sache schon ganz anders aus. Denn in diesem Fall greift die Spezifität bei allen untergeordneten Elementen! Ein kleines Beispiel dazu.

Der HTML-Code


<div id="blubb">
  <ul>
    <li><a href="bla.htm" class="schwall">Bla</a></li>
    <li><a href="blubber.htm" class="schwall">Blubber</a></li>
    <li>Laber</li>
  </ul>
</div>

Die CSS-Anweisungen


div#blubb *
{
  color#f0f;
}
a.schwall
{
  color#f00;
}

3. Und nun?

In diesem Fall sorgt der Universalselektor dafür, dass man sich die Spezifität für die Links erst mal so vorstellen muss,

Selektor A B C D Wertigkeit
div#blubb a 0 1 0 1 0 - 1 - 0 - 1

Da aber der Universalselektor keine Wertigkeit hat, wird das a (oder genauer gesagt das *) nicht unter "D" aufaddiert. Daher auch das Ergebnis 0-1-0-1 und nicht 0-1-0-2. Die Klassenzuweisung a.schwall dagegen ergibt nur diese Werte:

Selektor A B C D Wertigkeit
a.schwall 0 0 1 1 0 - 0 - 1 - 1

Um das nun genauer zu verstehen, sollte man sich einen Link mal mit dem Firebug genauer unter die Lupe nehmen. Dann kann man nämlich wunderbar erkennen, was hier passiert.

Unvisersalselektor

In diesem Fall sorgt also der Universalselektor dafür, dass die Farbangabe für div#blubb * zu einer höheren Wertigkeit führt und die Links anstelle eines satten Rots nun in diesem doch recht schwuchteligen Lila daherkommen. Das liegt aber einzig und allein daran, dass wir bei dem div mit id anstelle von class gearbeitet haben. Was dagegen im anderen Fall passiert, zeige ich euch jetzt.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt