首页 >web前端 >css教程 >如何使用 `` 标签设置嵌入 SVG 的样式?

如何使用 `` 标签设置嵌入 SVG 的样式?

Patricia Arquette
Patricia Arquette原创
2024-12-25 17:50:14666浏览

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

将样式应用于嵌入式 SVG

与通过 直接包含的 SVG 不同,标签,使用 嵌入 SVG标签无法使用文档样式表中的 CSS 设置样式。

技术说明

样式表仅适用于定义它们的文档的边界内。嵌入式 SVG 被视为独立的文档,因此外部定义的样式不会影响它们。

解决方案:基于脚本的样式插入

由于 标签提供对嵌入式 SVG 文档的访问,您可以通过编程方式将样式元素插入到嵌入式文档中。这是一个示例:

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

这假设 在运行脚本之前元素已完全加载。

替代方法

  • 在 SVG 中包含样式表:从内部链接到外部样式表使用 ?xml-stylesheet 处理指令或 的 SVG 文件 中的元素
  • 使用 jQuery-SVG 插件:利用 jQuery-SVG 插件将 JavaScript 和 CSS 样式应用到嵌入的 SVG。

直接 CSS定位

如果嵌入的 SVG 保存在单独的文件中,您可以定义针对 的 CSS 样式元素本身,例如:

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

此方法不会将样式应用于 SVG 本身,但它对于调整嵌入元素的整体外观很有用。

以上是如何使用 `` 标签设置嵌入 SVG 的样式?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn