我正在使用CSS缩放图像来调整雪碧图上的图标大小。在Chrome中它可以正常工作,但是在Firefox中,虽然图形被正确地缩放了,但它占用的空间与未缩放版本相同。
我发现
我尝试在CSS中减小图像的大小,但它会先裁剪再缩放,这会破坏Chrome的版本。这是在Firefox中的效果 :( 我不想添加更多的标记来修复它,例如,我可以使用
我发现
-moz-focus-inner
可以去除一些填充,但似乎与此无关。我尝试在CSS中减小图像的大小,但它会先裁剪再缩放,这会破坏Chrome的版本。这是在Firefox中的效果 :( 我不想添加更多的标记来修复它,例如,我可以使用
<span>
包装 <i>
并将 span 的CSS设置为 width:x 和 height:x 并且 overflow:hidden。
我正在寻找一个CSS解决方案来解决这个问题,因此不需要创建另一个雪碧图,不需要更改HTML,也不需要JS(如果有的话)。<button class="btn"><i class="icon"></i></button>
<button class="btn"><i class="icon icon-small"></i></button>
CSS
.btn, .btn-small{
border:0;
background:#000;
padding:5px;
margin:5px;
}
.icon{
width:50px;
height:50px;
background-image:url(https://ssl.gstatic.com/gb/images/v1_53a1fa6a.png);
background-position: -145px -75px;
background-repeat:no-repeat;
display:inline-block;
}
.icon-small{
zoom:0.5;
-moz-transform:scale(0.5);
-moz-transform-origin: 0 0;
}
transform
的工作原理。如果你用-webkit-transform
替换zoom
,你会得到相同的结果:http://jsfiddle.net/Qg794/2/。 - Passerby<i>
的某些边缘有一些间隙。我猜0.5px
对于浏览器来说是棘手的。 - Passerby