gpt4 book ai didi

html - 在CSS中的嵌入式SVG路径上使用类

转载 作者:行者123 更新时间:2023-11-28 02:52:47 25 4
gpt4 key购买 nike

我目前正在尝试将一些基本的 SVG 作为数据 URI 与我的 CSS 内联 - 类似于讨论的内容 here .

所有这些都工作正常,除非我尝试拥有一个针对其中一个内部路径的类:

.alter { 
fill:red;
}
.caretDown {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M11 10.07h-5.656l5.656-5.656v5.656z' class='alter' /%3E%3C/svg%3E");
}

现在这似乎不起作用,但如果我在我的 HTML 中将其作为普通 SVG 来执行,它就可以正常工作:

<body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path d="M11 10.07h-5.656l5.656-5.656v5.656z" class="alter"/>
</svg>
</body>

最终我试图以这种方式嵌入 SVG,以便我可以将它们用作背景图像(内联文本时似乎效果更好)并且我想通过一个类来控制事物以便我可以更改通过切换目标/范围选择器的颜色(其中 darklight 作为主题应用于正文):

.dark .alter { 
fill:red;
}
.light .alter {
fill:red;
}

我有一些关于为什么这不起作用的理论,但我找不到任何具体的原因。

最佳答案

如果您使用的是像 SASS 这样的 CSS 预处理器,您可以编写一个小函数,在其中传递填充颜色并返回具有该传递颜色作为填充的 SVG。

@function caret-down-icon-svg($fill: '111') {
@return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M11 10.07h-5.656l5.656-5.656v5.656z" fill="#{$fill}"/></svg>';
}

.caretDown {
background-image: url("data:image/svg+xml;utf8, #{svg-fill($caret-down-icon-svg)}");

&.light {
background-image: url("data:image/svg+xml;utf8, #{svg-fill($caret-down-icon-svg, ccc)}");
}
}

Here's the Pen

关于html - 在CSS中的嵌入式SVG路径上使用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664616/

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