当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS高级技巧:CSS Sprites

CSS样式表
CSS的margin边界叠加深度剖析图文演示
CSS中Float(浮动)相关技巧文章
惊现学习CSS应该注意的方法
使用text-align:justify实现两端对齐一例
CSS整体布局声明的一些使用技巧
推荐深入理解css中的position定位和z-index属性
固定表格的高度超过指定高度就隐藏的方法
推荐个Css的filter常用滤波器属性及语句大全
用css滤镜实现的文字描边效果的代码
用css实现的带阴影的表格效果的代码
推荐个不错的表单Input的高级用法11例
flash幻灯片需要先激活ActiveX控件才能使用的又一个办法
DIV+CSS作网页容易犯的错误小结
ul+li及css制作韩国风格菜单代码
div布局的自由伸展三栏式版面的代码
几乎被设计师遗忘了的标签fieldset legend
不用javascript实现带序号的表格隔行换色的效果
用CSS实现基本条状图表效果
用javascript来控制 链接的target 属性的代码
多浏览器css兼容分析小结

CSS样式表 中的 CSS高级技巧:CSS Sprites


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-09   浏览: 132 ::
收藏到网摘: n/a

CSS Sprites, 利用CSS background-position 进行背景绝对定位, 减少HTTP请求, 加速网页显示, 解决图片载入闪动问题的技巧.

CSS Sprites最适合用来做的, 恩, 比如:

  • 清单导航的CSS鼠标翻转效果
  • 大量小图标集中的应用 (FckEditor)
  • ...很多很多,多的想不出来了.

实现原理简单地说就是控制容器的大小, 然后利用background-repeat, background-position来对背景图片进行定位. 更可以理解为将网站大量背景图整合到一张大图中的这种行为( 表象上 )

用一个鼠标翻转事件来说明吧:

准备:

   
                                           01.jpg                                                                                               02.jpg

HTML代码:

<ul>
    <li><a id="item1" href="#" title="Item 1">&nbsp;</a></li>
    <li><a id="item2" href="#" title="Item 2">&nbsp;</a></li>
    <li><a id="item3" href="#" title="Item 3">&nbsp;</a></li>
    <li><a id="item4" href="#" title="Item 4">&nbsp;</a></li>
    <li><a id="item5" href="#" title="Item 5">&nbsp;</a></li>
    <li><a id="item6" href="#" title="Item 6">&nbsp;</a></li>
    <li><a id="item7" href="#" title="Item 7">&nbsp;</a></li>
    <li><a id="item8" href="#" title="Item 8">&nbsp;</a></li>
    <li><a id="item9" href="#" title="Item 9">&nbsp;</a></li>
</ul>

CSS代码:

ul { width:300px; height:300px; margin:0px auto; padding:0px; overflow:hidden; background:transparent url(02.jpg)}
li {list-style-type:none; width:100px; height:100px; float:left}
li a { display:block; width:100px; height:100px; text-decoration:none;
background:transparent url(01.jpg) no-repeat 500px 500px; }
a#item1:hover {background-position: 0 0; }
a#item2:hover {background-position: -100px 0;}
a#item3:hover {background-position: -200px 0;}
a#item4:hover {background-position: 0 -100px;}
a#item5:hover {background-position: -100px -100px;}
a#item6:hover {background-position: -200px -100px;}
a#item7:hover {background-position: 0 -200px;}
a#item8:hover {background-position: -100px -200px;}
a#item9:hover {background-position: -200px -200px;}

效果图如下:

有人要问了, 这有什么用么? 这可以模拟图片热区说明, 地图提示 等等...

Tips:

CSS Sprites需要精确的背景图片定位, 比较让人头疼.

相对于减少了多次HTTP请求的优点, 却增加了一次性一个大的HTTP请求的缺点... 自己权衡吧