我正在尝试使用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。
知道有什么问题吗?
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>");
}