Heim > Web-Frontend > CSS-Tutorial > Können CSS-Pseudoelemente „:before' und „:after' Inline-SVGs formatieren?

Können CSS-Pseudoelemente „:before' und „:after' Inline-SVGs formatieren?

Susan Sarandon
Freigeben: 2024-11-26 06:46:09
Original
797 Leute haben es durchsucht

Can CSS `:before` and `:after` Pseudo-elements Style Inline SVGs?

Styling von Inline-SVG mit CSS :before und :after Pseudo-Elementen: Ein Dilemma

Während CSS-Pseudoelemente wie :before und :after häufig für das Styling verwendet werden HTML-Elemente, ihre Anwendung auf Inline-SVGs stellt eine einzigartige Herausforderung dar. Das Verständnis der Nuancen ersetzter Elemente und generierter Inhalte ist für die Lösung dieses Problems von entscheidender Bedeutung.

Inline-SVGs als ersetzte Elemente

Inline-SVGs werden in HTML normalerweise als ersetzte Elemente behandelt. Ersetzte Elemente sind solche, die den Text durch ein externes Objekt ersetzen, beispielsweise ein Bild oder Video. Sie werden als einzelne Einheit angezeigt und dürfen keine Textknoten enthalten.

Diese Unterscheidung ist wichtig, da CSS-generierte Inhalte, wie sie beispielsweise durch :before- und :after-Pseudoelemente erstellt wurden, nur auf Inline-Elemente angewendet werden können . Inline-Elemente sind solche, die mit dem umgebenden Text fließen und Textknoten enthalten können.

Generierter Inhalt und ersetzte Elemente

Die CSS-Pseudoelemente :before und :after erstellen generierte Inhalte, die wird in das vom Selektor übereinstimmende Element eingefügt. Da Inline-SVGs jedoch ersetzte Elemente sind, können ihnen keine generierten Inhalte angehängt werden. Dies liegt daran, dass der Inhalt innerhalb des Elements hinzugefügt wird und ersetzte Elemente keine verschachtelten Inhalte zulassen.

Alternative Ansätze

Um diese Einschränkung zu überwinden, können alternative Ansätze untersucht werden:

  • Externes SVG mit Pseudo-Elementen: Erwägen Sie, das SVG als externe Datei zu laden und CSS zu verwenden, um Inhalte in das übergeordnete Element einzufügen stattdessen.
  • Wrapper-Element: Wickeln Sie das Inline-SVG in ein enthaltendes div ein und wenden Sie Pseudoelemente auf den Wrapper anstelle des SVG selbst an.

W3C vorgeschlagen Lösung: :outside Pseudo-Element

Im W3C-Dokument „CSS3 Generated and Replacement Content Module“ a Pseudoelement namens :outside wird eingeführt. :outside ermöglicht die Platzierung generierter Inhalte außerhalb des zugehörigen ersetzten Elements und bietet möglicherweise eine Lösung für die Gestaltung von Inline-SVGs. Es ist jedoch wichtig zu beachten, dass diese Funktion nicht weit verbreitet ist und möglicherweise nicht in allen Browsern unterstützt wird.

Das obige ist der detaillierte Inhalt vonKönnen CSS-Pseudoelemente „:before' und „:after' Inline-SVGs formatieren?. 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