我有一个正常显示白色的SVG文件,或者当用户将鼠标悬停在其上时显示红色。这是通过具有图像的透明区域并使用以下CSS& HTML:
a>img{background:#fff;width:32px;height:32px}
a:hover>img{background:#900}
<a href="blah.html"><img src="blah.svg"></a>
问题是我偶尔会在图像周围看到非常薄的白色(或红色)边框。不同的浏览器/缩放级别/设备显示不同的边框 - 有时没有,有时是一些,有时是全部。
这似乎表明SVG文件并未完全“填充”img标记。
我可能会认为问题在于SVG不是很方形,所以它不能完美地扩展到32x32像素,但有时我会在所有四边都有边框,所以它不能那么简单。 (实际上SVG文件的视图框为“0 0 195 195”,并且似乎没有任何超出该范围的点。
值得注意的是,由于SVG的矢量特性,将尺寸更改为39x39像素(完美的除数为195)并不能解决问题,而不是我预期的问题。
小提琴:http://jsfiddle.net/3wtazst8/1/
有什么建议吗?
由于
答案 0 :(得分:2)
我知道这已经有一年多了,但我遇到了同样的问题,并考虑了Paul LeBeau关于延伸到viewBox之外的建议。以下是显示问题和修复的示例。
have a paragraph on the technique
徽章图标不显示出血,而奖牌图标则显示。
Icons with background colors showing issue and showing fix
在Illustrator中查看左侧SVG,图像的背景将移至viewBox的最边缘。
在Illustrator中查看右边的SVG,图像的背景超出了viewBox的边缘。
修复SVG,使背景超出viewBox将解决您的问题。