Css Sprites 技术逐渐流行,各大网站上都可以看到它的身影。

但从本质上,Css Sprites 只是 Css 技术的一个使用小窍门,初学者也能快速上手。

Css Sprites 简单解释:

定制元素的长和宽,把元素变成一个取景框,然后通过背景图片的相对位移来显示图片中需要的部分。

 

以下就用一个由多幅图片组成的导航栏作为例子,解释一下 Css Sprites使用中需要注意的地方

html结构

<ul>
       <li id='nav_1'></li>
       <li id='nav_2'></li>
       <li id='nav_3'></li>
</ul>
 

Css代码    注意:虽然能正确显示,但需要优化

<style>
        #nav_1,#nav_2,#nav_3{ width:80px; height:24px;}
        #nav_1{background:url(images/nav.gif) no-repeat -5px -10px;}
        #nav_2{background:url(images/nav.gif) no-repeat -105px -10px;}
        #nav_3{background:url(images/nav.gif) no-repeat -210px -10px;}
</style>
 

Css代码    注意:这才是正确的代码

<style>
        #nav_1,#nav_2,#nav_3{ width:80px; height:24px; background:url(images/nav.gif) no-repeat;}
        #nav_1{background-position:  -5px -10px;}
        #nav_2{background-position: -105px -10px;}
        #nav_3{background-position: -210px -10px;}
</style>
 

为什么两段CSS代码显示的效果一样,但我说其中一个是正确的,而另外一个需要优化?

这就回到一个核心问题:为什么我们要使用Css Sprites技术?

在网页设计的过程中,有一个环节叫做“切片”,我们都知道,切片的目的是把图片分割成

小块,读取页面的时候能够分开加载,让用户更快的看到页面,当然切片更多是为了后续

的设计需要。

然而任何技术的诞生都有它的时代背景,Css Sprites诞生在一个普及宽带的环境下,在

这个环境中,图片的体积并不是影响用户访问速度的关键,大量的HTTP请求导致服务器

堵塞才是关键,当服务器堵塞就会出现部分图片无法显示,也就是常见的:红X。

Css Sprites 技术就是为了解决这个问题而诞生的。相信谁也不愿意看到自己精心制作的

图片导航栏,由于部分图片加载失败而变得奇丑无比吧?

让我们回到代码,从HTTP请求数量的角度去分析,为什么第一段CSS需要优化,在这种

情况下,浏览器会认为 #nav_1   #nav_2   #nav_3的背景是3张图片,请求3次,而第二种

情况下,浏览器才会正确的识别出3个元素使用的是同一张图片,只产生一个HTTP请求。

在常见的页面导航条,CMS系统,OA系统等设计中,大量使用了小图标,一个页面可能

就有几十个小图片需要加载,一旦出现某些图标显示不了,这将大大降低用户友好度,

使用Css sprites技术,把所有图片集成在一张图片上,然后只加载一次,全部图标都会

同时显示,甚至我们可以在负载较轻的页面预先加载整站的图标文件,当别的页面需要

使用时就可以从缓存调出,从而大大提高了WEB 应用的效率。

CSS sprites 技术的更多相关文章

  1. 用DIV+CSS切割多背景合并图片 CSS Sprites 技术

    很久之前就在互联网网站和一些js插件中见过这种技术的应用,当时觉得很麻烦,就没有用,也没有去深究. 近段时间一直在做前台的一些东西,涉及到很多div+css的问题.这个东东我又碰到了,所以我花了点时间 ...

  2. CSS Sprites技术

    CSS Sprites技术,国内很多人也叫雪碧图,因为sprite麻 (你买一瓶雪碧就看得到大大的sprite字样了) 主要用于将网站的零碎图标的img标签取代,因为每个img标签引用的src就会造成 ...

  3. CSS Sprites技术原理和使用

      在分析各个网站的CSS时,我们经常可以看到一些网站有很多的元素共享了一张背景图片,而这张背景图片包含了所有这些元素需要的背景,这种技术就叫做CSS Sprites. 淘宝的css sprites ...

  4. 如何使用CSS Sprites技术进行图片合并

    http://jingyan.baidu.com/article/066074d6757654c3c21cb02d.html

  5. CSS Sprites (CSS图像拼合技术)教程工具

    什么是CSS Sprites? “Sprite”(精灵)这个词在计算机图形学中有它独特的定义,由于游戏.视频等画质越来越高,必须有一种技术可以智能的处理材质和贴图,并且要 同时保持画面流畅.“Spri ...

  6. (转)CSS的Sprites技术

    Css Sprites 技术逐渐流行,各大网站上都可以看到它的身影. 但从本质上,Css Sprites 只是 Css 技术的一个使用小窍门,初学者也能快速上手. Css Sprites 简单解释: ...

  7. CSS Sprites (CSS 精灵) 技术

    CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢 ...

  8. 【CSS】CSS Sprites (CSS 精灵) 技术

    CSS Sprites CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不 ...

  9. CSS Sprites(CSS图像拼合技术)教程、工具集合

    本集合是有一位国外设计师收集整合,并由 oncoding翻译成中文的,感谢他们的辛苦贡献.CSS Sprites技术在国外并不是什么新技术,只不过近两年(尤其08年开始)中国开始流行这个词,大家也开始 ...

随机推荐

  1. C/C++错误分析errno,perror,strerror和GetLastError()函数返回的错误代码的意义

    在C语言编译中,经常会出现一些系统的错误,这些错误如果在编译的时候不能很好的“预见”,会使系统“崩溃”,常见的捕获错误函数有: errno #include<errno.h> 这个变量是程 ...

  2. OO之策略模式

    以下为策略模式详解: 引子: 使用策略就是要实现可扩展性,那么多态是不可少的.何谓可扩展性呢? 比如:我们用面向对象的思想来设计飞机,基类为飞机,飞机可以有很多种,客机,直升机,战斗机等,不同种类的飞 ...

  3. 【BZOJ 1202】 [HNOI2005]狡猾的商人

    Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), .当 ...

  4. 【BZOJ 1563】 [NOI2009]诗人小G

    Description Input Output 对于每组数据,若最小的不协调度不超过1018,则第一行一个数表示不协调度若最小的不协调度超过1018,则输出"Too hard to arr ...

  5. linux grep、find 命令详解

    grep1.作用grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权 ...

  6. WdatePicker 设置开始时间和结束时间

    开始时间: <input type="text" placeholder=" -请选择- " readonly="readonly" ...

  7. DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义

    DOCTYPE html PUBLIC 指定了 HTML 文档遵循的文档类型定义 今天看到一篇CSS应用的一个友好搜索,我按网页上的代码复制.粘贴后预览时总达不到效果,而直接拷贝他的实例却能达到效果, ...

  8. 【扩展欧几里得】Bzoj 1407: [Noi2002]Savage

    Description Input 第1行为一个整数N(1<=N<=15),即野人的数目.第2行到第N+1每行为三个整数Ci, Pi, Li (1<=Ci,Pi<=100, 0 ...

  9. 下一代Jquery模板-----JsRender

    在ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender中提到了JsRender.JsRedner和JsViews(JsViews是再JsRender基础 ...

  10. zoj 3720

    为什么注释掉的地方是错的?  自己的代码好糟烂..... 直接枚举点  判是否在多边形内  加起来求概率    求面积的时候代码写搓了....     比不过别人两行的代码    而且到现在还找不到错 ...