小心所有其他答案在IE中都存在一些问题。
让我们来看看这种情况-带前置图标的按钮。所有浏览器都可以正确处理此问题,但是IE会采用元素的宽度并缩放内容之前的内容以适合它。 JSFiddle
#mydiv1 { width: 200px; height: 30px; background: green; }
#mydiv1:before {
content: url("data:url or /standard/url.svg");
}
解决方案是将size设置为element之前,然后将其保留在原处:
#mydiv2 { width: 200px; height: 30px; background: green; }
#mydiv2:before {
content: url("data:url or /standard/url.svg");
display: inline-block;
width: 16px; //only one size is alright, IE scales uniformly to fit it
}
在background-image
+ background-size
解决方案可以作为很好,但有点不方便,因为你必须指定两次相同的尺寸。
IE11中的结果: