Viele Menschen finden CSS komplex. Sie kommen mit verschiedenen Ausreden: Mangelnde FĂ€higkeit, CSS oder CSS zu verstehen, ist an sich schlecht. Aber die RealitĂ€t ist, dass die Leute einfach nicht die Zeit gefunden haben, es wirklich zu studieren. Wenn Sie diesen Artikel lesen, möchten Sie CSS lernen und es ist groĂartig!

Was ist CSS-SpezifitÀt?
Haben Sie jemals einen Stil geschrieben, aber er funktioniert nicht, dann fĂŒgen Sie hinzu
! Wichtig (oder nicht), und dennoch funktioniert er nicht? Dann schauen Sie sich Devtools an und stellen fest, dass sich irgendwo ein anderer Stil mit Ihrem ĂŒberschneidet?
Dies ist die Besonderheit von CSS! Auf diese Weise wĂ€hlt der Browser aus, welche der konkurrierenden Selektoren auf das Element angewendet werden sollen. Wenn der Browser feststellt, dass zwei oder mehr Selektoren mit demselben Element ĂŒbereinstimmen und die Selektoren widersprĂŒchliche Regeln haben, muss er herausfinden, welche der Regeln auf dieses Element angewendet werden sollen. Die Art und Weise, wie dies geschieht, wird als "CSS-SpezifitĂ€tswert" bezeichnet.
Bevor wir uns mit der CSS-SpezifitĂ€t befassen, sollten Sie Folgendes beachten:- Die CSS-SpezifitĂ€t ist nur wichtig, wenn mehrere Selektoren dasselbe Element beeinflussen. Der Browser muss herausfinden, welcher Stil auf das entsprechende Element angewendet werden soll, wenn widersprĂŒchliche Eigenschaftswerte vorhanden sind.
- Wenn zwei oder mehr ĂŒbereinstimmende Selektoren denselben SpezifitĂ€tswert (Gewicht) haben, wĂ€hlt der Browser den âneuestenâ ĂŒbereinstimmenden Selektor aus, der nĂ€her am Ende der Liste der ĂŒbereinstimmenden Selektoren angezeigt wird. Im folgenden Abschnitt wird erlĂ€utert, was eine âListe geeigneter Selektorenâ ist.
- Der Browser erstellt eine âListe geeigneter Selektorenâ, indem er alle Stile auf der Webseite kombiniert und diejenigen herausfiltert, die nicht mit dem Element âaktuell gestaltetâ ĂŒbereinstimmen. Die ersten Selektoren im Stylesheet befinden sich oben in der Liste und die letzten Selektoren unten.
- Die Stileigenschaft eines Elements hat einen gröĂeren SpezifitĂ€tswert als Selektoren in Stylesheets, es sei denn, es gibt ! Wichtig in der Stylesheet-Auswahl.
- Die Verwendung von ! Important (was in einigen FÀllen als schlechte Praxis angesehen wird) Àndert die SpezifitÀt des Selektors. Wenn zwei Selektoren die gleiche SpezifitÀt haben, gewinnt der Selektor mit ! Important . Und wenn beide haben ! Wichtig , gewinnt der "neueste" Selektor.
SpezifitÀtswert
Jetzt können wir fortfahren, wie der Browser die SpezifitÀt des Selektors bestimmt.
Die SpezifitĂ€t des Selektors kann als dreistellige Zeichenfolge dargestellt werden, die durch einen Bindestrich (oder was auch immer) getrennt ist: â2â4â1â. Die erste Ziffer ist die Anzahl der vorhandenen ID-Selektoren, die zweite die Anzahl der Klassenselektoren, Attribut- und Pseudoklassenselektoren und die dritte die Anzahl der verfĂŒgbaren Typ- und Pseudoelementselektoren. Zum Beispiel:
#red.blue // 1-1-0 #green // 1-0-0 div.yellow#red // 1-1-1 .red.blue.yellow // 0-3-0
Definition der "spezifischsten"
Um festzustellen, welcher Selektor spezifischer ist, können Sie jeden der drei Werte vergleichen.
Angenommen , Sie haben
1-1-1 und
0-3-0 , wie in den letzten beiden Beispielen, und Sie mĂŒssen bestimmen, welches die spezifischste ist. Zuerst vergleichen Sie die letzten Werte
1 und
0 , und in diesem Fall gewinnt
1 . Dies bedeutet, dass
div.yellow#red
im Moment einen gröĂeren SpezifitĂ€tswert hat ... aber wir haben den Vergleich der Werte noch nicht abgeschlossen.
Vergleichen Sie als nÀchstes die Werte
1 und
3 ,
3 gewinnt. Derzeit hat .red.blue.yellow einen höheren SpezifitÀtswert.
SchlieĂlich vergleichen wir die ersten Werte,
1 und
0 , und
1 gewinnt, sodass
div.yellow#red
spezifischer ist als
.red.blue.yellow
.
Die CSS-SpezifitĂ€t des Selektors liefert eine gute ErklĂ€rung dafĂŒr, warum keine Anzahl von Klassenselektoren den ID-Selektor ĂŒberschreiben kann.
Kleine Warnungen
3 âFallstrickeâ, die Sie beachten sollten:- Ich habe oben geschrieben, dass die zweite Zahl in einer Folge von Zahlen, die aus drei besteht, "die Anzahl der Klassenselektoren, Attributselektoren und Pseudoklassen" ist. Dies gilt in allen FĂ€llen, auĂer wenn es sich um
:not()
Pseudoklasse handelt. Wenn es :not()
Pseudoklasse ist, betrachten wir es nicht, sondern ignorieren es einfach. Die darin enthaltenen Selektoren werden jedoch nicht ignoriert, sondern als normal angesehen. - Die CSS-SpezifitĂ€t versteht die âFormâ eines Selektors. Dies bedeutet, dass bei
*[id="yellow"]
und #yellow
der erste als Attributselektor behandelt wird. - Der universelle Selektor
*
allein zÀhlt nicht zur SpezifitÀt des Selektors. Im obigen Absatz [id="yellow"]
ist ein Teil des Selektors wirklich wichtig.
Ich hoffe, dieser Artikel ist leicht zu verstehen und hilft zu verstehen, was CSS-SpezifitĂ€t ist. Jetzt können Sie sich den Stil ansehen und leicht feststellen, wie âspezifischâ er ist.