Die CSS -Spezifität ist eine Reihe von Regeln, die bestimmen, welche Stilerklärungen vom Browser angewendet werden, wenn mehrere Erklärungen für dasselbe Element konflikten. Die Spezifität eines CSS-Selektors wird unter Verwendung eines vierteiligen Ranking-Systems berechnet, bei dem die verschiedenen Arten von Selektoren unterschiedliche Gewichte haben:
1,0,0,0
dargestellt. Dies bedeutet, dass ein Inline -Stil alle in einem externen oder internen Stylesheet definierten Stile überschreibt, es sei denn, sie überschrieben von !important
.0,1,0,0
dargestellt. Zum Beispiel hätte #navbar
eine Spezifität von 0,1,0,0
.0,0,1,0
. Beispiele sind .btn
, [type="text"]
und :hover
.0,0,0,1
dargestellt. Beispiele sind div
, p
und ::before
. Beim Vergleich von Spezifitäten werden die Werte von links nach rechts verglichen. Beispielsweise wird ein Selektor mit einer Spezifität von 0,1,0,0
immer einen Selektor mit einer Spezifität von 0,0,1,0
gewinnen. Wenn zwei Selektoren die gleiche Spezifität haben, wird diejenige, die später im CSS -Code angezeigt wird, angewendet.
Mehrere Faktoren beeinflussen die Spezifität von CSS -Selektoren:
div#navbar
einen Element Selector ( div
) mit einem ID -Selektor ( #navbar
), was zu einer Spezifität von 0,1,0,1
führt.!important
: Obwohl kein Faktor für das traditionelle Sinne der Spezifitätsberechnung, kann die Verwendung von !important
eine Spezifitätsregel überschieben, was es zu einem leistungsstarken (wenn auch nicht empfohlenen) Tool macht.Um CSS -Stile mit höherer Spezifität zu überschreiben, können Sie mehrere Strategien anwenden:
.btn
(Spezifität 0,0,1,0
) überschreiben möchten, können Sie .container .btn
(Spezifität 0,0,2,0
) oder #navbar .btn
(Spezifität 0,1,1,0
) verwenden.#navbar
eine höhere Spezifität als .navbar
.!important
: Als letztes Ausweg können Sie die !important
Erklärung verwenden, um andere Stile außer Kraft zu setzen. Zum Beispiel color: blue !important;
wird alle anderen color
für dieses Element außer Kraft setzen. Die Verwendung !important
ist jedoch im Allgemeinen entmutigt, da dies zu Wartungsproblemen führen kann. Ja, Sie können verwenden !important
, um die CSS -Spezifität zu verwalten. Wenn eine Immobilie mit !important
Deklaration deklariert wird, überschreibt sie jede andere Erklärung für dieselbe Eigenschaft, unabhängig von der Spezifität der Selektoren.
Es gibt jedoch erhebliche Auswirkungen zu berücksichtigen:
!important
kann Ihr CSS schwieriger machen, es zu warten. Wenn mehrere Entwickler an demselben Projekt arbeiten, sind sie möglicherweise nicht vorhanden !important
Erklärungen, was zu unerwartetem Verhalten führt.!important
kann dazu führen, dass Entwickler immer mehr !important
Erklärungen hinzufügen, um frühere zu überschreiben, was kontraproduktiv ist und zu unüberschaubaren CSS führt.!important
kann den normalen Fluss der CSS -Vererbung stören und es schwieriger machen, vorherzusagen, wie Stile kaskaden werden.!important
sich auf die Best Practices der CSS verlassen, befürworten sie sich für gut strukturierte, modulare CSS, die leicht verwaltet werden können, ohne auf solche Überschreibungen zurückzugreifen. !important
kann in bestimmten Situationen (wie überschreibende Bibliotheksstile von Drittanbietern) ein nützliches Werkzeug sein, aber es sollte sparsam und mit Vorsicht verwendet werden. Ein besserer Ansatz besteht darin, Ihr CSS auf eine Weise zu strukturieren, die die Notwendigkeit solcher Überschüsse minimiert und bei Bedarf spezifischere Selektoren verwendet.
Das obige ist der detaillierte Inhalt vonWie wird die CSS -Spezifität berechnet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!