Heim > Web-Frontend > CSS-Tutorial > Wie kann ich eingebettete SVGs effektiv formatieren, wenn das direkte CSS-Styling begrenzt ist?

Wie kann ich eingebettete SVGs effektiv formatieren, wenn das direkte CSS-Styling begrenzt ist?

Barbara Streisand
Freigeben: 2024-12-23 03:16:17
Original
353 Leute haben es durchsucht

How Can I Effectively Style Embedded SVGs When Direct CSS Styling Is Limited?

Gestaltung eingebetteter SVGs: CSS-Einschränkungen und alternative Ansätze

Übersicht

Gestaltung eingebetteter SVGs (Skalierbare Vektorgrafiken) kann im Vergleich zu direkt enthaltenen SVGs Herausforderungen darstellen in einem Dokument. Für ein effektives Styling ist es von entscheidender Bedeutung, die Einschränkungen zu verstehen und alternative Methoden zu erkunden.

Direktes CSS-Styling eingebetteter SVGs

Wenn ein SVG mit der Funktion eingebettet wird; -Tag können CSS-Stile nicht direkt aus dem Stylesheet des Dokuments angewendet werden. Dies liegt daran, dass CSS-Stile keine Dokumentgrenzen überschreiten.

object svg {
    fill: #fff;
}
Nach dem Login kopieren

Stile mit Skript einfügen

Da eingebettete SVGs separate Dokumente sind, können Stile mit Skript in sie eingefügt werden. Die folgende Methode geht davon aus, dass ist vollständig geladen:

var svgDoc = yourObjectElement.contentDocument;
var styleElement = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
styleElement.textContent = "svg { fill: #fff }";
svgDoc.getElementById("where-to-insert").appendChild(styleElement);
Nach dem Login kopieren

Alternativ kann ein externes Stylesheet über die Funktion verlinkt werden. Element:

var svgDoc = yourObjectElement.contentDocument;
var linkElm = svgDoc.createElementNS("http://www.w3.org/1999/xhtml", "link");
linkElm.setAttribute("href", "my-style.css");
linkElm.setAttribute("type", "text/css");
linkElm.setAttribute("rel", "stylesheet");
svgDoc.getElementById("where-to-insert").appendChild(linkElm);
Nach dem Login kopieren

Direktes Styling aus der SVG-Datei

Alternativ können Stile direkt verknüpft oder in die SVG-Datei eingebunden werden:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="my-style.css" type="text/css"?>
<svg xmlns="http://www.w3.org/2000/svg">
  ... rest of document here ...
</svg>
Nach dem Login kopieren

oder

<svg xmlns="http://www.w3.org/2000/svg">
  <defs>
    <link href="my-style.css" type="text/css" rel="stylesheet" 
          xmlns="http://www.w3.org/1999/xhtml"/>
  </defs>
  ... rest of document here ...
</svg>
Nach dem Login kopieren

Zusätzliche Option: jquery-svg Plugin

Für weitere Flexibilität bietet das Das jquery-svg-Plugin bietet Methoden zum Anwenden von CSS-Stilen und JavaScript-Skripten auf eingebettete SVGs.

Das obige ist der detaillierte Inhalt vonWie kann ich eingebettete SVGs effektiv formatieren, wenn das direkte CSS-Styling begrenzt ist?. 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