Maison > interface Web > tutoriel CSS > Les styles CSS peuvent-ils être appliqués aux SVG intégrés dans une balise `` ?

Les styles CSS peuvent-ils être appliqués aux SVG intégrés dans une balise `` ?

Susan Sarandon
Libérer: 2024-12-21 18:37:16
original
106 Les gens l'ont consulté

Can CSS Styles Be Applied to SVGs Embedded within an `` Tag?

Style CSS des SVG intégrés

Application de styles CSS à un SVG directement inclus dans un document à l'aide de l'option la balise est simple. Cependant, si le SVG est intégré dans un balise, cette approche échoue. Les styles CSS peuvent-ils être appliqués à un SVG intégré ?

Réponse courte : Non

Les styles CSS ne traversent pas les limites du document. Un La balise, dans ce cas, crée effectivement une frontière entre le document contenant et le SVG intégré.

Approches alternatives

Heureusement, il existe des méthodes alternatives pour styliser les SVG intégrés :

1. Insertion de feuille de style par programmation :

À l'aide de JavaScript, la feuille de style peut être insérée directement dans le document SVG dans le fichier étiqueter. Cela suppose que l'objet est entièrement chargé.

var svgDoc = yourObjectElement.contentDocument;
var styleElement = svgDoc.createElementNS("http://www.w3.org/2000/svg", "style");
styleElement.textContent = "svg { fill: #fff }"; // Adjust as needed
svgDoc.getElementById("where-to-insert").appendChild(styleElement);
Copier après la connexion

2. Référencement de feuille de style externe :

Un L'élément peut être inséré pour référencer une feuille de style externe :

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);
Copier après la connexion

3. Importation CSS (@import Rule) :

La première méthode peut être utilisée pour insérer un élément de style et ensuite ajouter une règle @import :

styleElement.textContent = "@import url(my-style.css)";
Copier après la connexion

4. Liaison directe de feuille de style SVG :

Le fichier SVG lui-même peut référencer directement une feuille de style :

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="my-style.css" type="text/css"?>
<svg xmlns="http://www.w3.org/2000/svg">
  ... (SVG content) ...
</svg>
Copier après la connexion

5. Plugin jquery-svg :

Le plugin jquery-svg offre une approche alternative pour appliquer les styles JavaScript et CSS aux SVG intégrés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal