css - 使用 "rect"或 "circle"等基元时,内联 SVG 不可见

标签 css svg

<分区>

我们使用以下代码来设置复选框的样式:

.checkbox-default {
    display: inline-block;
    *display: inline;
    vertical-align: middle;
    margin: 0;
    padding: 0;
    width: 22px;
    height: 22px;
    background: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><rect fill="#ffffff" stroke="blue" stroke-width="2" height="16" width="16" /><path fill="#000000" d="M6.7,10.3,4.5,8.1l-.7.7,2.9,2.9,6.2-6.2-.7-.7Z" /><path fill="#000000" d="M6.6,10.2,4.4,8l-.7.7,2.9,2.9,6.2-6.2-.7-.7Z" /></svg>') !important;
    border: none;
    cursor: pointer;    
}

这在 MS Edge 中有效:将鼠标悬停在复选框上会显示一个带有蓝色边框和内部黑色箭头的白色矩形。遗憾的是,这在 Chrome 和 Firefox 中不起作用 - 框在那里(光标更改,我什至可以单击它们)但它们不可见。当我删除“矩形”并且只有“路径”时,它才能在每个浏览器中正确显示。添加例如“圆圈”时的结果相同 - 复选框不再可见。我尝试在 SVG 和许多其他内容中添加组标签,但是当至少有一个像“rect”这样的基元时,我无法显示 CB。我错过了什么吗?

最佳答案

好的,终于找到解决办法了。

您必须将每个十六进制颜色代码中的“#”替换为“%23”,因为 Chrome 和 Firefox 不再喜欢“#”。

关于css - 使用 "rect"或 "circle"等基元时,内联 SVG 不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57888670/

上一篇:html - 我想显示我从下拉列表中选择的城市天气信息,我该如何管理它?

下一篇:css - 冗余 CSS 规则,即 float 和显示 :block

相关文章:

javascript - 如何附加多个背景图像

javascript - Snap.svg - Chrome/Firefox 之间的 SVG 渲染不一致

css - Webpack - 我应该如何包含我为 prod/qa/dev 环境生成的 css?

html - block 元素在页面上不可见

css - block 增长以适应它的 child 并且水平居中

svg - 使用透明背景将SVG转换为ICO

css - SVG 1.1 作为带有 CSS 的掩码

带 svg 的 Jquery 选择器

CSS:根据后备字体设置字体粗细

css - 图片资源加载时间长