Heim > Web-Frontend > CSS-Tutorial > Wie funktioniert die CSS-Textdekorationsvererbung und warum schlägt das Überschreiben manchmal fehl?

Wie funktioniert die CSS-Textdekorationsvererbung und warum schlägt das Überschreiben manchmal fehl?

Linda Hamilton
Freigeben: 2024-12-16 01:57:11
Original
206 Leute haben es durchsucht

How Does CSS Text-Decoration Inheritance Work, and Why Does Overriding it Sometimes Fail?

Text-Decoration-Vererbung verstehen

In CSS regelt die Text-Decoration-Eigenschaft die dekorativen Linienstile, die auf Text angewendet werden. Im Gegensatz zu anderen textbezogenen Stilen wie der Schriftstärke verhält sich die Textdekoration jedoch anders.

Das Problem beim Überschreiben geerbter Dekoration

Beachten Sie den folgenden CSS-Code:

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

Dieser Code soll verhindern, dass geerbte Dekorationen auf verschachtelte Listenelemente angewendet werden. Die folgende HTML-Struktur zeigt jedoch ein unerwartetes Ergebnis:

<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

Erklärung

Das Problem liegt in der Tatsache, dass die Textdekoration für alle verschachtelten Elemente innerhalb der gilt Element, auf das es angewendet wird. Das bedeutet, dass selbst wenn Sie versuchen, die geerbte Dekoration auf verschachtelten Elementen zu überschreiben, die geerbte Dekoration weiterhin angewendet wird.

Gemäß der CSS 2.1-Spezifikation wird „Textdekoration auf Inline-Boxen über das gesamte Element gezeichnet“. , indem Sie alle Nachkommenelemente durchgehen, ohne auf deren Elemente zu achten Präsenz.“

Lösung

Um dieses Problem anzugehen, ist ein anderer Ansatz erforderlich. Anstatt sich auf verschachtelte Selektoren zu verlassen, um die geerbte Dekoration zu überschreiben, verwenden Sie eine alternative Technik wie:

  • Verwenden der Pseudoelemente ::before oder ::after, um dekorative Linien zu erstellen
  • Employing JavaScript zum dynamischen Ändern der Textdekorationseigenschaft
  • Anwenden der Textdekorationseigenschaft direkt auf die gewünschten Elemente, ohne sich darauf verlassen zu müssen Vererbung

Das obige ist der detaillierte Inhalt vonWie funktioniert die CSS-Textdekorationsvererbung und warum schlägt das Überschreiben manchmal fehl?. 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