Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Einführung in die CSS-Stil-Override-Regeln

Detaillierte Einführung in die CSS-Stil-Override-Regeln

高洛峰
高洛峰Original
2017-03-04 10:22:481279Durchsuche

Jeder weiß, dass der vollständige Name von CSS „Cascading Style Sheet“ lautet, aber es wird geschätzt, dass viele Menschen die Bedeutung des Wortes „Cascading“ nicht kennen. Tatsächlich bezieht sich „Kaskadierung“ auf die Überlagerung von Stilen. Wenn ein Element mit mehreren Stilen angewendet wird und es Stilattribute mit demselben Namen gibt, muss der Browser einen Attributwert daraus auswählen. Style Override (dieser Name ist beliebter) folgt bestimmten Regeln. Ich hatte diese Regel vorher immer vage verstanden, aber erst als ich heutzutage „CSS: The Missing Manual“ las, wurde es plötzlich klar. Nachfolgend finden Sie einige meiner Studiennotizen.

Zunächst muss klar sein, dass in vielen Situationen ein Element mit mehreren Stilen angewendet werden muss. Die Regeln für die Stilabdeckung müssen auch entsprechend den spezifischen Regeln festgelegt werden sind wie folgt.

Regel 1: Wenn aufgrund der Vererbung ein Stilkonflikt auftritt, gewinnt der nächste Vorfahre.

Der Vererbungsmechanismus von CSS ermöglicht es einem Element, Stile von den Vorgängerelementen zu erben, die es enthalten:

<html>
<head>
<title>rule 1</title>
<style>
body {color:black;}   
p {color:blue;}   
</style>
</head>
<body>
    <p>welcome to <strong>gaodayue的网络日志</strong></p>
</body>
</html>


stark bzw. stark Das Farbattribut wird in body und p vererbt, aber da p im Vererbungsbaum näher an strong liegt, erbt der Text in strong schließlich die blaue Farbe von p.

Regel 2: Wenn der geerbte Stil mit dem direkt angegebenen Stil in Konflikt steht, gewinnt der direkt angegebene Stil.

Wenn im obigen Beispiel auch der Stil des starken Elements angegeben wird, wie zum Beispiel:

strong {color:red;}


Dann gilt gemäß Regel 2 das Text in starker Schrift Die endgültige Anzeige ist rot.

Regel 3: Wenn direkt angegebene Stile in Konflikt geraten, gewinnt derjenige mit der höheren Stilgewichtung.

Die Gewichtung des Stils hängt von der Stilauswahl ab. Die Gewichtung ist in der folgenden Tabelle definiert.

CSS-Selektorgewicht

Tag-Selektor 1
Klassenselektor 10
ID-Selektor 100
Inline-Stil 1000
Pseudoelement (:first -child usw.) 1
Pseudoklasse (:link usw.) 10

Wie Sie sehen können, ist die Gewichtung des Inline-Stils>>ID-Selektor>>Klassenselektor>> Die Gewichtung der Nachkommenselektoren ist die Summe der Gewichtungen der einzelnen Elemente. Die Gewichtung von „#nav .current a“ beträgt beispielsweise 100 + 10 + 1 = 111.

Regel 4: Wenn die Stilgewichte gleich sind, gewinnt letzterer.

Betrachten Sie die folgende Situation

<p

class="byline">Written   
 by <a

class="email"

href="mailto:jean@cosmofarmer.   
 com">Jean   
 Graine de Pomme</a></p>
12 .byline   
 a {color:red;}p   
 .email {color:blue;}


Sowohl „.byline a“ als auch „p .email“ geben direkt das obige a-Element und die Gewichte an sind alle 11, und gemäß Regel 4 wird schließlich Blau angezeigt.

Da Stylesheets extern oder intern sein können, erinnert uns Regel 4 daran, auf die Reihenfolge zu achten, in der externe Stylesheets eingeführt werden (und die Reihenfolge der -Elemente) sowie auf externe Stylesheets und interne Stile Die Position, an der die Tabelle angezeigt wird. Im Allgemeinen erscheinen interne Stylesheets nach der Einführung aller externen Stylesheets, normalerweise vor .

Regel 5: !wichtige Stilattribute werden nicht überschrieben.

!important kann als „goldener Finger“ für das Verstoßen gegen die oben genannten vier Regeln angesehen werden, wenn es absolut notwendig ist. Wenn Sie ein bestimmtes Stilattribut verwenden und verhindern möchten, dass es überschrieben wird, können Sie nach dem Attributwert !important hinzufügen. Nehmen Sie das Beispiel von Regel 4 als Beispiel: „.byline a {color:red !important;}“ kann erzwingen Der Link wird rot angezeigt. In den meisten Fällen können Stilüberschreibungen auf andere Weise gesteuert werden und !important kann nicht missbraucht werden.

Das obige umfassende Verständnis der CSS-Stilabdeckungsregeln ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie die chinesische PHP-Website unterstützen.

Eine ausführlichere Einführung in die CSS-Stil-Override-Regeln und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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