Maison >interface Web >tutoriel CSS >Comment puis-je styliser des SVG intégrés à l'aide de la balise `` ?

Comment puis-je styliser des SVG intégrés à l'aide de la balise `` ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-25 17:50:14666parcourir

How Can I Style Embedded SVGs Using the `` Tag?

Application de styles aux SVG intégrés

Contrairement aux SVG directement inclus via l'option tag, SVG intégrés à l'aide de la balise La balise ne peut pas être stylisée à l'aide du CSS à partir de la feuille de style du document.

Explication technique

Les feuilles de style ne s'appliquent que dans les limites du document dans lequel elles sont définies. Les SVG intégrés sont considérés comme distincts documents, et par conséquent, les styles définis en externe ne peuvent pas les affecter.

Solution : Style basé sur un script Insertion

Depuis que l' La balise donne accès au document SVG intégré, vous pouvez insérer par programme des éléments de style dans le document intégré. Voici un exemple :

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);

Cela suppose que l'objet L'élément est complètement chargé avant d'exécuter le script.

Approches alternatives

  • Inclure une feuille de style dans SVG : Lien vers une feuille de style externe depuis l'intérieur le fichier SVG à l'aide de l'instruction de traitement ?xml-stylesheet ou d'un dans l'élément section.
  • Utilisez le plugin jQuery-SVG : Utilisez le plugin jQuery-SVG pour appliquer les styles JavaScript et CSS aux SVG intégrés.

CSS direct Ciblage

Si le SVG intégré est enregistré dans un fichier séparé, vous pouvez définir des styles CSS qui ciblent le l'élément lui-même, tel que :

object[data="my-embedded-svg.svg"] {
  fill: #fff;
}

Cette approche n'applique pas de styles au SVG lui-même, mais elle peut être utile pour ajuster l'apparence générale de l'élément intégré.

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!

Déclaration:
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