Heim > Web-Frontend > CSS-Tutorial > Wie kann ich die Vererbung der CSS-Textdekoration effektiv überschreiben?

Wie kann ich die Vererbung der CSS-Textdekoration effektiv überschreiben?

Barbara Streisand
Freigeben: 2024-12-17 16:03:13
Original
875 Leute haben es durchsucht

How Can I Effectively Override CSS Text Decoration Inheritance?

Vererbung der CSS-Textdekoration verstehen

In CSS kann das Überschreiben der Textdekoration eine Herausforderung sein. Wenn ein übergeordnetes Element mit einem Textdekorationsstil angewendet wird, erbt es seine Dekoration an alle seine untergeordneten Elemente. Dies kann zu Verwirrung führen, wenn versucht wird, die Dekoration bestimmter Elemente zu steuern.

Der Fall des Überschreibens der Textdekoration

Betrachten Sie das bereitgestellte Beispiel, in dem das folgende CSS verwendet wird:

ul > li {
    text-decoration: none;
}
ul > li.u {
    text-decoration: underline;
}
ul > li > ul > li {
    text-decoration: none;
}
ul > li > ul > li.u {
    text-decoration: underline;
}
Nach dem Login kopieren

Und der HTML-Code lautet wie folgt:

<ul>
  <li>Should not be underlined</li>
  <li class="u">Should be underlined
    <ul>
      <li>Should not be underlined</li>
      <li class="u">Should be underlined</li>
    </ul>
  </li>
</ul>
Nach dem Login kopieren

Hier ist das erwartete Verhalten das Verschachtelte Listenelemente würden keine Dekoration erhalten, während die übergeordneten Elemente mit der u-Klasse unterstrichen würden. Das Ergebnis zeigt jedoch, dass alle Listenelemente unterstrichen sind.

Die Erklärung

Der Grund für dieses Verhalten liegt in der Natur der CSS-Textdekoration. Im Gegensatz zu anderen Schriftarteigenschaften gilt die Textdekoration für das gesamte Element, einschließlich aller verschachtelten Elemente. Dies bedeutet, dass die im übergeordneten Container definierte Dekoration rekursiv auf seine untergeordneten Container angewendet wird, unabhängig von deren eigenen Textdekorationsstilen.

Dieses Verhalten ist in der CSS21-Spezifikation dokumentiert:

Text decorations on inline boxes are drawn across the entire element, going across any descendant elements without paying any attention to their presence. The 'text-decoration' property on descendant elements cannot have any effect on the decoration of the element.
Nach dem Login kopieren

Fazit

Das Überschreiben der Textdekoration in CSS erfordert das Verständnis dieses Vererbungsverhaltens. Um sicherzustellen, dass bestimmte Elemente die Dekoration nicht von ihrem übergeordneten Element erben, ist es notwendig, text-decoration: none für jede Ebene der Verschachtelung zu definieren.

Das obige ist der detaillierte Inhalt vonWie kann ich die Vererbung der CSS-Textdekoration effektiv überschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage