gpt4 book ai didi

html - 在包含的 HTML 中使用 CSS 设置 SVG 样式

转载 作者:技术小花猫 更新时间:2023-10-29 12:18:07 24 4
gpt4 key购买 nike

我有一个 SVG 文件,其中包含一个名为 .该文件名为 indicator.svg:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!--Scalable Vector Graphic-->
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ev="http://www.w3.org/2001/xml-events"
baseProfile="full">
<polygon points="0,7 7,0 14,7"/>
</svg>

我有一个带有内置 CSS 的 html,它试图设置 SVG 多边形的颜色:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
.indicator{
fill:blue;
}
</style>
<title>Untitled Document</title>
</head>

<body>
<img class="indicator" src="images/indicator.svg" />
</body>
</html>

但它不会将 SVG 中三 Angular 形的颜色更改为蓝色。这怎么能解决?我希望能够从 HTML 内部选择三 Angular 形的颜色,而 SVG 本身位于单独的文件中。

最佳答案

很明显为什么这对您不起作用。 fill CSS 属性仅适用于 SVG 元素,但您正试图将其应用于 HTML <img>元素。可以通过其他方式达到预期的结果:

  • 在您的主文档中使用true XHTML(使用application/xml*/*+xml MIME 类型);然后,您将能够混合命名空间并将 SVG 附加到其中。浏览器对此解决方案的支持非常好;它适用于所有支持 XHTML 和 SVG 的浏览器。
  • 一些较新的浏览器(IE9+、Firefox 4+、Chrome)允许您甚至在 HTML 文档中执行相同的操作。
  • 将样式表链接到 SVG 文档:<?xml-stylesheet type="text/css" href="style.css"?> .我个人会选择这种方式。您将无法直接从 HTML 文档控制属性值,但您不需要更改 SVG 文件。
  • 使用 <object> 将 SVG 文件附加到 HTML 文档中并使用脚本:oObjElem.contentDocument.getElementsByTagNameNS('http://www.w3.org/2000/svg', 'polygon')[0].style.fill = 'blue'; .

关于html - 在包含的 HTML 中使用 CSS 设置 SVG 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7280821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com