【发布时间】:2015-12-01 04:50:18
【问题描述】:
当有人将鼠标悬停在它上面时,我有一个元素应该更改 background-image。
但是,背景图像是 SVG,为 data-uris。
它在 Webkit 浏览器(Chrome、Safari、Opera)上运行良好,在 IE 上运行良好。
但是,在 Firefox 上,每当我悬停时,图像就会变成空白。当我尝试通过检查元素并可能更改颜色或其他一些不相关的样式来摆弄它时,图像神奇地出现了。
这里出了什么问题,我该如何解决?
这是我的 CSS:
.info .comment{
background-image: url('data:image/svg+xml;charset=utf-8,<svg%20xmlns%3D"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg"%20fill%3D"%23D9D9D9"%20width%3D"25px"%20height%3D"25px">%0D%0A%20<path%20d%3D"M11.5%201C5.159441000000001%201%200%205.54683583%200%2011.1341066C0%2013.8432911%201.2135882000000038%2016.305879%203.1855000000000047%2018.1266402C3.3234999999999957%2018.2536543%203.4046764999999937%2018.4293122%203.4046764999999937%2018.6164553L3.4046764999999937%2024.1449483C3.2423234999999977%2024.7442118%203.9045882000000063%2025.2259197%204.426147099999994%2024.8887917L8.889499999999998%2021.2411889C9.039676%2021.118904%209.233823999999998%2021.0702603%209.425264999999996%2021.1006627C10.098353000000003%2021.210111%2010.791735000000003%2021.2682132%2011.5%2021.2682132C17.841234999999998%2021.2682132%2023%2016.722053%2023%2011.1341066C23%205.54683583%2017.841234999999998%201%2011.5%201"%2F>%0D%0A%0D%0A%0D%0A<%2Fsvg>');
background-repeat: no-repeat;
background-size: contain;
width: 20px;
height: 20px;
color: #D9D9D9;
display: inline-block;
}
.info:hover .comment, .info:visited .comment{
background-image: url('data:image/svg+xml;charset=utf-8,<svg%20xmlns%3D"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg"%20fill%3D"%23CCCCCC"%20width%3D"25px"%20height%3D"25px">%0D%0A%20<path%20d%3D"M11.5%201C5.159441000000001%201%200%205.54683583%200%2011.1341066C0%2013.8432911%201.2135882000000038%2016.305879%203.1855000000000047%2018.1266402C3.3234999999999957%2018.2536543%203.4046764999999937%2018.4293122%203.4046764999999937%2018.6164553L3.4046764999999937%2024.1449483C3.2423234999999977%2024.7442118%203.9045882000000063%2025.2259197%204.426147099999994%2024.8887917L8.889499999999998%2021.2411889C9.039676%2021.118904%209.233823999999998%2021.0702603%209.425264999999996%2021.1006627C10.098353000000003%2021.210111%2010.791735000000003%2021.2682132%2011.5%2021.2682132C17.841234999999998%2021.2682132%2023%2016.722053%2023%2011.1341066C23%205.54683583%2017.841234999999998%201%2011.5%201"%2F>%0D%0A%0D%0A%0D%0A<%2Fsvg>');
}
.info:hover {
color:#CCCCCC
}
还有我的 HTML:
<a class="info" href="#">
<div class="comment" role="img"></div>
500
</a>
【问题讨论】:
-
我将您的代码放入一个快速的 html 文件(和一个 jsfiddle)中,并且在 Firefox 中似乎一切正常。同样的事情会发生在私人窗口中吗?还是在你清除缓存之后?
-
为我工作,check my fiddle
-
@wmeade 你是对的。但是我只是添加了 :visited 状态,然后它就中断了。我找到了它变成空白的原因。只需要知道为什么
-
@leftside 参见上面的评论,参见 jsfiddle.net/tcynrd62/2 它在 Firefox 中中断。不知道为什么...
-
只有颜色可以用来设置访问链接的样式:dbaron.org/mozilla/visited-privacy