列表样式中的SVG-添加填充时换行

时间:2019-09-10 作者:John Doe

我正在尝试使用CSS添加自定义项目符号list-style-image. 以下是属性:

ul {
    list-style-image:url("data:image/svg+xml;utf8,<?xml version=\'1.0\' encoding=\'utf-8\'?><svg width=\'18\' height=\'18\' viewBox=\'0 0 1792 1792\' xmlns=\'http://www.w3.org/2000/svg\'><path d=\'m1671,566q0,40 -28,68l-724,724l-136,136q-28,28 -68,28t-68,-28l-136,-136l-362,-362q-28,-28 -28,-68t28,-68l136,-136q28,-28 68,-28t68,28l294,295l656,-657q28,-28 68,-28t68,28l136,136q28,28 28,68z\'/></svg>");
}
为方便起见,这是嵌入在list-style-image:

<?xml version=\'1.0\' encoding=\'utf-8\'?>
<svg width=\'18\' height=\'18\' viewBox=\'0 0 1792 1792\' xmlns=\'http://www.w3.org/2000/svg\'>
    <path d=\'m1671,566q0,40 -28,68l-724,724l-136,136q-28,28 -68,28t-68,-28l-136,-136l-362,-362q-28,-28 -28,-68t28,-68l136,-136q28,-28 68,-28t68,28l294,295l656,-657q28,-28 68,-28t68,28l136,136q28,28 28,68z\'/>
</svg>
问题是,当我尝试添加fill 把某事归因于某人<path>, 随着SVG不再显示为项目符号(默认设置),整个过程似乎都中断了ul 圆圈项目符号显示)。我试过两者都用fill=\'#f00\', style=\'#f00\'stroke=\'#f00\'. 所有这些都破坏了SVG。

知道有什么问题吗?

1 个回复
SO网友:Alina

不能像通常使用内联svg那样,向已转换为base64的svg中的路径添加填充。在转换为base64之前添加填充,或者在当前css中这样添加填充:

fill=\'%23f00\'
以上相当于fill=\'#f00\'. 这也适用于笔划,基本上是替换# 具有%23 在base64中。

笔划示例:stroke=\'%23f00\' stroke-width=\'1\'

因此,带有填充代码的svg将是:

ul {
    list-style-image:url("data:image/svg+xml;utf8,<?xml version=\'1.0\' encoding=\'utf-8\'?><svg width=\'18\' height=\'18\' viewBox=\'0 0 1792 1792\' xmlns=\'http://www.w3.org/2000/svg\'><path d=\'m1671,566q0,40 -28,68l-724,724l-136,136q-28,28 -68,28t-68,-28l-136,-136l-362,-362q-28,-28 -28,-68t28,-68l136,-136q28,-28 68,-28t68,28l294,295l656,-657q28,-28 68,-28t68,28l136,136q28,28 28,68z\' fill=\'%23f00\'/></svg>");
}