混合 1 查看我网站的源代码和 19 个字节浪费字母的字符background-position
,用于精灵图标的位置,你会感觉到我对这个长词有点沮丧:
background-position
单独使用它很好,但是当设置数百个精灵图标时,它只是浪费字节。所以我的问题是:有没有更聪明的速记可以代替这个长词?如果是这样,它将为我节省一半的页面字节数!
只需在下面的图片中看看它的疯狂......
干杯和非常感谢!
更新:
请注意,每个图标都有自己独特的图标和独特的背景偏移。
混合 1 查看我网站的源代码和 19 个字节浪费字母的字符background-position
,用于精灵图标的位置,你会感觉到我对这个长词有点沮丧:
background-position
单独使用它很好,但是当设置数百个精灵图标时,它只是浪费字节。所以我的问题是:有没有更聪明的速记可以代替这个长词?如果是这样,它将为我节省一半的页面字节数!
只需在下面的图片中看看它的疯狂......
干杯和非常感谢!
请注意,每个图标都有自己独特的图标和独特的背景偏移。
简单地使用background
似乎会覆盖实际的背景图像,所以看起来background-position
是你唯一的选择。
不过,您可以改用类,例如...
<div class="sprite-button save">Save</div>
.sprite-button {
width: 10px;
height: 10px;
background-image: url(sprites.png);
background-repeat: no-repeat;
text-indent: -9999px;
}
.save {
background-position: -30px 0;
}
尽管如此,除非您是 Google、Facebook 等,否则保存这么多字节可能不值得麻烦(除了我上面的示例)。
一种方法是在类名中编码背景位置,然后使用 javascript 将其转换为元素样式。
所以
<p class="mnu" style="background-position: 0 -1690px">
变成
<p class="mnu bg p$0$-1690">
然后你做类似的事情
$('.bg').each( function() {
var elem = $(this);
var classes = elem.attr('class').split(/\s+/);
$.each(classes, function(index, classname) {
if(classname.indexOf('p$') != -1) {
var coords = new Array();
coords = classname.split('$');
elem.css('background-position', coords[1]+"px "+coords[2]+"px");
}
});
});
实际上,您在那里有自己的去缩小器。我并不是说这是最好的方法,但它确实解决了您对 HTML 文件大小的担忧(以渲染时间为代价)。