我有一个大小为 32x32px 的各种图标的 CSS 精灵。
现在我需要以 20x20px 大小显示这些图标之一。我尝试了一些方法,例如将大小设置为 20px、使用 background-size:cover 或使用 transform:scale(0.625) - 但我的尝试都没有给出我想要的结果。
我的测试的 HTML:
32px icons:
<div class="sprite" style="background-position:0px 32px;"> </div>
<div class="sprite" style="background-position:64px 32px;"> </div>
<div class="sprite" style="background-position:32px 96px;"> </div>
<div class="sprite" style="background-position:0px 0px;"> </div>
<div class="sprite" style="background-position:32px 64px;"> </div>
<hr>
20px icons (attempts):
<div class="sprite" style="background-position:32px 64px; width:20px; height:20px;"> </div>
<div class="sprite" style="background-position:32px 64px; width:20px; height:20px; background-size:cover;"> </div>
<div class="sprite" style="background-position:32px 64px; width:20px; height:20px; transform:scale(0.625);"> </div>
Run Code Online (Sandbox Code Playgroud)
我的测试的 CSS:
.sprite {
background-image:url(http://buildnewgames.com/assets/article//dom-sprites/spritesheet.png);
width:32px;
height:32px;
}
Run Code Online (Sandbox Code Playgroud)
请看一下这个小提琴,看看我尝试了什么:
您只能使用scalewithoutwidth和 ,height如下所示:
.sprite {
background:url(http://buildnewgames.com/assets/article//dom-sprites/spritesheet.png);
width:32px;
height:32px;
}Run Code Online (Sandbox Code Playgroud)
32px icons:
<div class="sprite" style="background-position:0px 32px;"> </div>
<div class="sprite" style="background-position:64px 32px;"> </div>
<div class="sprite" style="background-position:32px 96px;"> </div>
<div class="sprite" style="background-position:0px 0px;"> </div>
<div class="sprite" style="background-position:32px 64px;"> </div>
<hr>
20px icons (attempts):
<div class="sprite" style="background-position:32px 64px; transform:scale(0.625);"> </div>
<div class="sprite" style="background-position:32px 64px; transform:scale(calc(20 / 32));"> </div>Run Code Online (Sandbox Code Playgroud)
您还可以使用calc以下方法计算比例因子:
<div class="sprite" style="background-position:32px 64px; transform:scale(calc(20 / 32));"> </div>
Run Code Online (Sandbox Code Playgroud)
JSFiddle 上的演示: https ://jsfiddle.net/dfqh0yrc/5/