Css Sprite也被为CSS精灵,这是前端攻城师必备的技能之一,也是衡量初级攻城师和中级攻城师的标准之一。
下面大概描述一下Css Sprite的基本概念:
这是一种网页图片应用处理的方法,将一个页面涉及到的一些零散的图片整合到一张图片上,减少客户端对服务器HTTP请求的次数,然后用CSS背景图定位的方法来处理需要用到的图片部分。
话说背景定位,其实就是操纵背景的坐标轴(background-position),它有两个值,X轴坐标和Y轴坐标,系统默认背景图的坐标为X轴0点和Y轴0点,下面举例说明一下:
组合按钮
某项目中的发布按钮的原始状态、鼠标经过状态和不可点击状态
有这样一张图当作按钮的背景图,先定义其它样式
btn.jpg
a{ background-image:url(btn.jpg); width:87px; height:25px; }
然后分别定义三种状态:
1、原始状态:
Background-position:0 0
2、鼠标经过状态:
Background-position:0 -25px
3、不可点击状态:
Background-position:0 -50px
其实像这种按钮等高的图片也可以写成:
Background-position: top; Background-position: center; Background-position: bottom;
这样效果是一样,但是不利于此图片的拓展,所以我建议使用坐标轴数字,而不建议直接用方位来定义。
其原理图片相当于控制嵌入到该元素中的底图的位置,以鼠标经过为例,如图:
全部代码:
a{ background-image:url(btn.jpg); width:87px; height:25px; display:block; text-indent:-9999em; background-position:0 0; } a:hover{ background-position:0 -25px; } a. no{ background-position:0 -50px; }
CSS Sprites图片切割术
1. CSS Sprites图片顺序合图片由上至下、左至右添加。而background-position一般采用数字组合形式定位,这样能减少维护带来的不必要麻烦。
2. 不建议CSS Sprites图片中保持一定的间距,因为文件size增大而增加文件体积。
3. CSS Sprites图片中把颜色较近或相同的组合在一起可以降低颜色数,因为少色数的图片文件体积会相对的小。
4. size相同的CSS Sprites图片中留有较大空隙,某程度上多数情况会增大了体积,所以CSS Sprites的图片不要有空隙。
5. 在size相同的CSS Sprites图片中,垂直排列的图片会比水平排列的文件体积要大。
6. 在CSS Sprites图片中,水平排列的图片会比垂直排列的文件体积要大。
7. 图片对等合并:应用CSS Sprites图片时,适当地把对等相同的图像合并,以节省空间及减少体积。
8. 区分开不需要合并的图像:如当前用户确定只显示一种状态或一个级别时,不必要把其他的级别或状态的图片合并。
9. 黄金切割位:在CSS Sprites图片的最右或左边为最灵活动位置最适宜摆放文本前的icon,因此不会受到其它CSS Sprites图片干预,也不需要预留一定的行宽。
补两条
10. 有的说定位时避免使用bottom或right等,当使用CSS sprite的时候,只用background-position: bottom -300px或background-position: right -200px;非常容易。这刚开始的时候是可行的,但是问题是,当你在宽度上或高度上扩展相关sprite图片的时候,原先设置的位置可能是错的,因为那个图片已经不再Sprite图片的底部或右部了。使用确切的位置来避免这个问题。
其实我感觉一般情况宽度图不片不会改应变,用RIGHT和 LEFT还是挺方便的,但从整体考虑,升级了。改版的。图片宽度还是有可能会改变的。必竟开始时做太宽也没什么好处,还是浪费很多空间。就是多费点时间去对坐标,最好还是不用RIGHT 和 LEIFT的了。
12 有的说竟给每个图片足够的空间
就像你在本文顶部的实例图片看到的那样,那些小图片都被预留了足够的空间。为什么不把他们塞到一块来让sprite图片更小呢? 因为使用这些图片的元素通常都会有大量的内容而且可能会需要扩展的间距,以至于其它图片不会意外出现。
这个我支持,必竟多空点,也占不不了多大空间,如何要追求完美,那就慢慢调吧。费了劲了。在加上浏览器兼容问题,最好还大多空间。小误差也忽略了。
相关推荐
css sprite示例源码
css sprite雪碧图生成小工具 v4.3 css sprite 雪碧图生成小程序,已在github上开源,地址:https://github.com/iwangx/sprite ,请需要的朋友注意版本更新
Sketch-CSS-Sprite-Mixin, 在草图中,生成一个 CSS Sprite Mixin到剪贴板的代码 绘制 CSS Sprite MixinSketch中生成 scss,LESS 和手写笔的mixin的代码。 运行插件时,代码被复制到剪贴板。子画面名称是顶级图层名,...
CSS Sprite自动生成工具是一款可以导入CSS背景图片,就可以自动生成CSS sprite代码和一张整的CSS 贴图图片的工具,工具小巧方便,精确到1px,网格吸附。非常方便制作CSS sprite贴图。
雪碧图工具CssSprite.exe 快速生成雪碧图及代码的工具,很好使
演示CSS中Sprite技术的应用,这是一种减少与服务器连接次数的好方法,能够适当提高服务器的响应能力,特别是高并发的网站。
该工具可以自动生成css sprite在应用background-position的参数
css精灵图生成软件,自动生成,并给出小图的backgrount-positon的值。比较好用
Stitches 是一个 HTML5 sprite 样式创建工具,可以将多个图片合并成一个,并给出 sprite 样式。 标签:Stitches
css sprite 雪碧图生成小程序,已在github上开源,地址:https://github.com/iwangx/sprite
CST CSS图片拼合定位工具
CssSprite雪碧图制作工具 优点:简单好用
当图片数量较多,而且搭配合理的情况下,可以有效地提升网页速度;另外,借助 CSS sprite 的特性可以进行图片提前加载处理。
css sprite 雪碧图生成小程序,已在github上开源,地址:https://github.com/iwangx/sprite
CssSprite.zip
TexturePackerGUI css sprite 雪碧图 破解版 亲测完全没有问题。包内带有安装方法,1/2两部曲,5秒钟安装完。小白都可以用