我正在尝试从我拥有的 SVG spritesheet 制作一堆图像链接,但我遇到了 Chrome、Safari 和 Firefox 之间的跨浏览器问题。我有一堆这样的标签:
<a href="#" id="twitter-logo" class="socialIcon"></a>
<a href="#" id="facebook-logo" class="socialIcon"></a>
然后在我的css中,我为所有这些设置了背景图片
.socialIcons{
background-image: url('../img/social.svg');
width: 60px;
height: 60px;
display: inline-block;
}
#twitter-logo{background-position: 0px 0px;}
#twitter-logo:hover{background-position: 0px -200px;}
#facebook-logo{background-position: -79px 0px}
#facebook-logo:hover{background-position: -79px -200px;}
这在 Firefox 和 Safari 中都可以正常工作,但在 chrome 中,SVG 文件似乎比其他文件高 2 个像素。这意味着我的图标顶部比我的顶部低 2 个像素<a>
,并且我的图标从边缘被切断 2 个像素。为了解决这个问题,我可以从每个背景位置 y 值中减去 2,但是我遇到了问题,因为它们现在在 Safari 和 Firefox 中是错误的。
这种神秘的转变从何而来?