2016-04-15 8 views
2

Ich versuche herauszufinden, warum .x höhere Spezifität als *.x hat, wenn der letztere erwartet wird zu gewinnen.CSS Universal Selektor (*) Spezifität

Ist das nicht *.x soll eine Spezifität von 0-0-1-1 (1 Klasse, 1 Tag) haben, während .x ist nur eine einzige Klasse 0-0-1-0?

Betrachten Sie den folgenden grundlegenden Code:

*.x { color: blue; } 
 

 
.x { color: red }
<p class="x">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Atque, nam.</p>

Es sollte blau sein. Um ein erwartetes Verhalten zu zeigen, ich ersetzt * mit einem anderen Element (p):

p.x { color: blue; } 
 

 
.x { color: red }
<p class="x">This time it works.</p>

+3

Der universelle Selektor hat eine Spezifität von 0, 0, 0, 0 Sie können das * nicht als Tag sehen. In deinem Fall sind beide gleich ... – Yoeri

Antwort

5

Die universal selector (*) hat keinen Einfluss auf die Spezifität, also der die Arten letztere Wähler werden diejenigen sein, die werden angewendet.

Ein Sternchen (*) ist der universelle Selektor für CSS. Es entspricht einem einzelnen Element eines beliebigen Typs. Das Auslassen des Sternchens mit einfachen Selektoren hat den gleichen Effekt. Zum Beispiel werden * .warning und .warning als gleich betrachtet.