Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Priorität der Stile im CSS-Stylesheet

高洛峰
Freigeben: 2017-02-14 14:53:45
Original
3019 Leute haben es durchsucht

Manchmal funktionieren beim Schreiben von CSS bestimmte Einschränkungen immer nicht, was das Problem der Abdeckung des CSS-Stils mit sich bringt, wie folgt

#navigator {
    height: 100%;
    width: 200;
    position: absolute;
    left: 0;
    border: solid 2 #EEE;
}
.current_block {
    border: solid 2 #AE0;
}
Nach dem Login kopieren

Schauen Sie sich einige Lehrmaterialien an (w3schools usw.). Es wird nur gesagt, dass die Reihenfolge von CSS „Stil auf dem Element“ > „Stilelement im Dateiheader“ > „externe Stildatei“ ist, es gibt jedoch keine detaillierte Erklärung, wie die Prioritäten mehrerer identischer Stile in der Stildatei sind angeordnet sind. Nach dem Testen und der weiteren Suche habe ich erfahren, dass die Prioritäten wie folgt angeordnet sind:

1. Je präziser die Elementauswahl des Stylesheets, desto höher ist die Priorität des Stils :

Stil angegeben durch ID-Selektor> Stil angegeben durch Elementtyp-Selektor

Im obigen Beispiel ist die Stilpriorität von #navigator größer als die Priorität von . current_block, mit der Zeit ist .current_block die neueste Ergänzung und funktioniert auch nicht.

2. Für Stile, die durch denselben Selektortyp angegeben werden, ist die Priorität umso höher, je später in der Stylesheet-Datei.

Hinweis: Hier ist die Stylesheet-Datei Je später im Element, desto höher ist die Priorität und nicht die Reihenfolge, in der die Elementklasse erscheint. Beispielsweise erscheint .class2 nach .class1 im Stylesheet:

.class1 {
    color: black;
}
.class2 {
    color: red;
}
Nach dem Login kopieren

Wenn ein Element die Klasse angibt, wird es mit class="class2 class1" angegeben, obwohl class1 im angegeben ist Element Rang hinter Klasse2, aber da Klasse1 in der Stylesheet-Datei vor Klasse2 steht, hat Klasse2 zu diesem Zeitpunkt immer noch eine höhere Priorität und das Farbattribut ist Rot und nicht Schwarz.

.class1 {
    color: black !important;
}
.class2 {
    color: red;
}
Nach dem Login kopieren
Nach dem Login kopieren

3. Wenn Sie möchten, dass die Priorität eines bestimmten Stils höher ist, können Sie mit !important Folgendes angeben:

.class1 {
    color: black !important;
}
.class2 {
    color: red;
}
Nach dem Login kopieren
Nach dem Login kopieren

Zu diesem Zeitpunkt verwendet die Klasse Schwarz statt rot.

Für die am Anfang aufgetretenen Probleme gibt es zwei Lösungen:

1 Nehmen Sie den Rahmen aus #navigator und fügen Sie ihn in einen Klassenblock ein, und .block wird vor .current_block platziert:

#navigator {
    height: 100%;
    width: 200;
    position: absolute;
    left: 0;
}
.block {
    border: solid 2 #EEE;
}
.current_block {
    border: solid 2 #AE0;
}
Nach dem Login kopieren

Sie müssen class="block" für das #navigator-Element angeben

2. Verwenden Sie !important:

#navigator {
    height: 100%;
    width: 200;
    position: absolute;
    left: 0;
    border: solid 2 #EEE;
}
.current_block {
    border: solid 2 #AE0 !important;
}
Nach dem Login kopieren

Weitere Artikel zur Stilpriorität in CSS-Stylesheets finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
css
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage