`

Css Sprite

 
阅读更多

   Css Sprite也被为CSS精灵,这是前端攻城师必备的技能之一,也是衡量初级攻城师和中级攻城师的标准之一。

下面大概描述一下Css Sprite的基本概念:

    这是一种网页图片应用处理的方法,将一个页面涉及到的一些零散的图片整合到一张图片上,减少客户端对服务器HTTP请求的次数,然后用CSS背景图定位的方法来处理需要用到的图片部分。

    话说背景定位,其实就是操纵背景的坐标轴(background-position),它有两个值,X轴坐标和Y轴坐标,系统默认背景图的坐标为X轴0点和Y轴0点,下面举例说明一下:

 

 

组合按钮

某项目中的发布按钮的原始状态、鼠标经过状态和不可点击状态

有这样一张图当作按钮的背景图,先定义其它样式

 

 前端攻城记——Css <wbr>Sprite(一)

 

btn.jpg

a{
    background-image:url(btn.jpg);
    width:87px;
    height:25px;
}

 

 

 

然后分别定义三种状态:

1、原始状态:

前端攻城记——Css <wbr>Sprite(一)

 

Background-position:0 0

 

2、鼠标经过状态:

前端攻城记——Css <wbr>Sprite(一)

 

Background-position:0 -25px

3、不可点击状态:

前端攻城记——Css <wbr>Sprite(一)

 

Background-position:0 -50px

 

其实像这种按钮等高的图片也可以写成:

    Background-position: top;
    Background-position: center;
    Background-position: bottom;

 

这样效果是一样,但是不利于此图片的拓展,所以我建议使用坐标轴数字,而不建议直接用方位来定义。

 

其原理图片相当于控制嵌入到该元素中的底图的位置,以鼠标经过为例,如图:

前端攻城记——Css <wbr>Sprite(一)

 

全部代码:

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的核心思想是将多个小图像合并到一张大图(称为Sprite图)中,然后通过CSS的background-position属性来定位显示需要的部分。这样,浏览器只需要加载一张图片,就能显示多个图像,显著提高了页面加载效率。...

    CSSSprite示例代码

    **CSS Sprite技术详解** 在网页设计中,CSS Sprite(精灵图)是一种常见的优化网页加载速度的方法,它将多个小图像合并到一个大图中,通过CSS的定位来显示需要的部分。这种技术尤其适用于那些需要频繁加载的小图标...

    雪碧图工具CssSprite.exe

    "雪碧图工具CssSprite.exe"是一个专为生成雪碧图并自动生成对应的CSS代码而设计的软件,使得这一过程变得更加便捷高效。 在网页开发中,每个单独的小图都需要一个HTTP请求来获取,当页面中包含大量小图时,这些请求...

    CssSprite雪碧图

    **CssSprite雪碧图详解** 在网页设计中,图片的加载速度往往直接影响到用户体验。为了优化网页性能,提高页面加载速度,一种名为“CssSprite”(雪碧图)的技术应运而生。雪碧图是一种将多个小图标合并到一张大图中...

    css sprite 工具

    为了更高效地使用CSS Sprite,开发者需要了解如何优化CSS选择器、合理安排图片顺序以减小精灵图的大小,以及掌握CSS Sprites在响应式设计中的应用,确保在不同设备上都能正确显示。 总之,"css sprite 工具"是提升...

    css sprite 自动生成工具

    总结来说,"css sprite 自动生成工具"是Web开发中提高效率和优化性能的重要辅助手段,它简化了CSS Sprite的制作流程,使开发者能够更加专注于网页设计和功能实现。通过合理使用这样的工具,可以显著提升用户体验,...

    css sprite雪碧图生成小工具 v4.3

    css sprite 雪碧图生成小程序,已在github上开源,地址:https://github.com/iwangx/sprite ,请需要的朋友注意版本更新,下载最新版。 博客园地址:http://www.cnblogs.com/wang4517/

    Sketch-CSS-Sprite-Mixin, 在草图中,生成一个 CSS Sprite Mixin到剪贴板的代码.zip

    Sketch-CSS-Sprite-Mixin, 在草图中,生成一个 CSS Sprite Mixin到剪贴板的代码 绘制 CSS Sprite MixinSketch中生成 scss,LESS 和手写笔的mixin的代码。 运行插件时,代码被复制到剪贴板。子画面名称是顶级图层名,...

    css sprite 雪碧图生成小程序

    压缩包中的`CssSprite.exe`文件是一个可执行程序,很可能是上述开源项目编译后的Windows版本。使用这个程序,用户可以直接在命令行中输入命令,将一组图标文件合并为雪碧图,并自动生成相应的CSS代码,方便集成到...

    CSS Sprite自动生成工具 CSS Sprite贴图制作工具

    CSS Sprite自动生成工具是一款可以导入CSS背景图片,就可以自动生成CSS sprite代码和一张整的CSS 贴图图片的工具,工具小巧方便,精确到1px,网格吸附。非常方便制作CSS sprite贴图。

    css sprite原理优缺点及使用

    ### CSS Sprite 原理与应用详解 #### CSS Sprite 概念 CSS Sprite,中文常称为“CSS精灵”,是一种常见的前端技术,用于优化网站加载速度和用户体验。它通过将多个小图片合并为一张大图,并借助CSS背景定位来实现...

    css sprite 组合图 定位 生成

    CSS Sprite是一种网页图像优化技术,它将多个小图像合并到一张大图(组合图)中,然后通过CSS的背景定位来显示需要的部分。这样做的主要目的是减少HTTP请求次数,提高页面加载速度,优化用户体验。当你在网页设计中...

    CssSprite.zip

    CSS Sprite,又称为CSS雪碧图或CSS精灵,是一种常见的网页图像优化技术。在网页设计中,为了减少HTTP请求的数量,提高页面加载速度,设计师们通常会将多个小图像合并成一张大图,然后通过CSS定位来显示所需的图像...

    CssSprite(雪碧图制作工具)

    **CssSprite(雪碧图制作工具)** 在前端开发中,优化网页加载速度是至关重要的。其中,一种常见的优化策略就是使用CssSprite技术,也就是我们常说的“雪碧图”。雪碧图是一种将多个小图标合并到一张大图中,然后...

    css sprite雪碧图生成小工具 v2.0

    1. **安装与运行**:从提供的压缩包中,找到CssSprite.exe并运行。确保你的系统支持.exe执行文件。 2. **导入图标**:将需要合并的图标文件(通常为.png格式)导入工具。 3. **生成雪碧图**:点击工具上的生成按钮,...

    CssSprite雪碧图制作工具

    **CssSprite雪碧图制作工具详解** 在网页设计与开发中,CSS Sprite(通常被称为“雪碧图”)是一种常见的优化网页加载速度的技术。通过将多个小图标合并到一张大图(雪碧图)中,然后利用CSS的背景定位来显示需要的...

    css sprite 雪碧图生成小工具

    **CSS Sprite技术详解** CSS Sprite,也被称为雪碧图,是一种网页图像处理方式,它将多个小图标合并到一张大图中,通过CSS定位来显示需要的图标部分,以此达到减少HTTP请求,优化页面加载速度的效果。在网页设计中...

Global site tag (gtag.js) - Google Analytics