css sprites直译过来就是CSS精灵,但是这种翻译显然是不够的,其实就是通过将多个图片融合到一副图里面,然后通过CSS的一些技术布局到网页上。这样做的好处也是显而易见的,因为图片多的话,会增加http的请求,无疑促使了网站性能的减低,特别是图片特别多的网站,如果能用css sprites降低图片数量,带来的将是速度的提升。
下面我们来用一个实例来理解css sprites。
我们仅仅只需要制作一个扑克牌,拿黑桃10为例子。
可以直接把蓝色理想中融合好的一幅大图作为背景,这也是css sprites的一个中心思想,就是把多个图片融进一个图里面。
这就是融合后的图,相信对PS熟悉的同学应该很容易的理解,通过PS我们就可以组合多个图为一个图。
现在我们书写html的结构:
<div class="card"> <div class="front"> <b class="N1 n10"></b> <em class="First small_up1"></em> <span class="A1 up1"></span> <span class="A2 up1"></span> <span class="A3 down1"></span> <span class="A4 down1"></span> <span class="B1 up1"></span> <span class="B2 down1"></span> <span class="C1 up1"></span> <span class="C2 up1"></span> <span class="C3 down1"></span> <span class="C4 down1"></span> <em class="Last small_down1"></em> <b class="N2 n10_h"></b> </div> </div>
在这里我们来分析强调几点:
一:card为这个黑桃十的盒子或者说快,对div了解的同学应该很清楚这点。
二:我用span,b,em三种标签分别代表三种不同类型的图片,span用来表标中间的图片,b用来表示数定,em用来表示数字下面的小图标。
三:class里面的声明有2种,一个用来定位黑桃10中间的图片的位置,一个用来定义方向(朝上,朝下)。
上面是DIV基本概念,这还不是重点,不过对DIV不太清楚的同学可以了解。
下面我们重点谈下定义CSS:
span{display:block;width:20px;height:21px; osition:absolute;background:url(images/card.gif) no-repeat;}
这个是对span容器的CSS定义,其他属性就不说了,主要谈下如何从这个里面来理解css sprites。
背景图片,大家看地址就是最开始我们融合的一张大图,那么如何将这个大图中的指定位置显示出来呢?因为我们知道我们做的是黑桃10,这个大图其他的图像我们是不需要的,这就用到了css中的overflow:hidden;
但大家就奇怪了span的CSS定义里面没有overflow:hidden啊,别急,我们已经在定义card的CSS里面设置了(这是CSS里面的继承关系):
.card{width:125px;height:170px; position:absolute;overflow:hidden;border:1px #c0c0c0 solid;}
理解到这点还不够,还要知道width:125px;height:170px; 这个可以理解成是对这个背景图片的准确切割,当然其实并不是切割,而是把多余其他的部分给隐藏了,这就是overflow:hidden的妙用。
通过以上的部分的讲解,你一定可以充分的把握css sprites的运用,通过这个所谓的“切割”,然后再通过CSS的定位技术将这些图准确的分散到这个card里面去!
PS:CSS的定位技术,大家可以参考其他资料,例如相对定位和绝对定位,这里我们只能尝试用绝对定位。
最后我们来补充一点:
为什么要采取<span class="A1 up1"></span>这样的结构?
span这个容器是主要作用就是存放这张大的背景图片,并在里面实现”切割“,span里面切割后的背景是所有内容块里面通用的!
后面class为什么要声明2个属性?
很显然,一个是用来定位内容块的位置,一个是用来定义内容块中的图像的朝上和朝下,方位的!
下面我们附上黑桃10的完整源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>制作一幅扑克牌--黑桃10</title> <style type="text/css"><!-- .card{width:125px;height:170px; position:absolute;overflow:hidden;border:1px #c0c0c0 solid;} /*中间图片通用设置*/ span{display:block;width:20px;height:21px; position:absolute;background:url(http://www.blueidea.com//articleimg/2009/02/6382/00.gif) no-repeat;} /*小图片通用设置*/ b{display:block;width:15px;height:10px; position:absolute;font-size:10pt;text-align:center;font-weight:bold;background:url(http://www.blueidea.com//articleimg/2009/02/6382/00.gif) no-repeat; overflow:hidden;} /*数字通用设置*/ em{display:block;width:15px;height:10px; position:absolute;font-size:10pt;text-align:center;font-weight:bold;background:url(http://www.blueidea.com//articleimg/2009/02/6382/00.gif) no-repeat;overflow:hidden;} /*各坐标点位置*/ .N1{left:1px;top:8px;} .First{left:5px;top:20px;} .A1{left:20px;top:20px;} .A2{left:20px;top:57px;} .A3{left:20px;top:94px;} .A4{left:20px;top:131px;} .B1{left:54px;top:38px;} .B2{left:54px;top:117px;} .C1{left:86px;top:20px;} .C2{left:86px;top:57px;} .C3{left:86px;top:94px;} .C4{left:86px;top:131px;} .Last{bottom:20px;right:0px;} .N2{bottom:8px;right:5px; } /*大图标黑红梅方四种图片-上方向*/ .up1{background-position:0 1px;}/*黑桃*/ /*大图标黑红梅方四种图片-下方向*/ .down1{background-position:0 -19px;}/*黑桃*/ /*小图标黑红梅方四种图片-上方向*/ .small_up1{background-position:0 -40px;}/*黑桃*/ /*小图标黑红梅方四种图片-下方向*/ .small_down1{background-position:0 -51px;}/*黑桃*/ /*A~k数字图片-左上角*/ .n10{background-position:-191px 0px;left:-4px;width:21px;} /*A~k数字图片-右下角*/ .n10_h{background-position:-191px -22px;right:3px;width:21px;} /*A~k数字图片-左上角红色字*/ .n10_red{background-position:-191px 0px;} /*A~k数字图片-右下角红色字*/ .n10_h_red{background-position:-191px -33px;} --> </style> </head> <body> <!--10字符--> <div class="card"> <div class="front"> <b class="N1 n10"></b> <em class="First small_up1"></em> <span class="A1 up1"></span> <span class="A2 up1"></span> <span class="A3 down1"></span> <span class="A4 down1"></span> <span class="B1 up1"></span> <span class="B2 down1"></span> <span class="C1 up1"></span> <span class="C2 up1"></span> <span class="C3 down1"></span> <span class="C4 down1"></span> <em class="Last small_down1"></em> <b class="N2 n10_h"></b> </div> </div> </body> </html>
相关推荐
**CSS精灵(CSS Sprites)**是一种网页图像优化技术,它允许我们将多个小图像合并到一个大图(称为精灵图)中,然后通过CSS的背景定位来显示我们需要的部分。这样可以减少网页HTTP请求的数量,从而提高页面加载速度...
在上述提供的内容中,通过一个简单的实例展示了CSS Sprites的应用。实例中通过定义body、ul、li、a等元素的CSS样式来实现背景图片的切换显示。通过设置背景图片的url、高度、宽度以及不同状态下的background-...
在深入探讨"CSS彻底研究-书中实例"这个主题之前,我们首先要理解CSS(Cascading Style Sheets)的核心概念。CSS是一种样式表语言,用于描述HTML或XML(包括各种XML方言,如SVG、XHTML等)文档的呈现。它控制着网页的...
学习如何减少重绘和回流、合理组织样式表、利用CSS Sprites和预加载等技巧,对于优化网站性能至关重要。 **8. 实例分析** 本教程宝典中的大量实例将帮助你实践所学知识。通过查看和分析源代码,你可以理解如何将...
- 通过实例学习如何创建简单的网页布局,如两列布局、三列布局。 - 学习如何利用CSS实现按钮、导航栏等常见网页元素的样式设计。 10. **调试与测试** - 使用开发者工具(如Chrome DevTools)进行CSS调试,查看...
总之,"html-css-spotifyweb-源码.rar"提供了一个深入学习HTML和CSS实际应用的实例,尤其是对于想要掌握网页设计和前端开发的人员来说,这是一个很好的实践和参考材料。通过研究源码,我们可以了解到如何将理论知识...
更值得一提的是,CSS3的渐变(gradients)、图案(patterns)和图片精灵(sprites)技术,使得哆啦A梦的色彩和纹理得以细腻呈现。比如,使用线性渐变(linear-gradient)可以制作出哆啦A梦的身体颜色过渡,而图案则...
**CSS Sprites 应用实例** 以淘宝网为例,我们可以看到在其频道页面导航和首页设计中,广泛运用了CSS Sprites技术。频道页面导航的sprites图包含了各个频道的图标,首页的sprites图则包含了各种按钮和装饰元素。...
在“sinolog”实例中,可能通过合并多个CSS文件为一个、利用CSS Sprites减少图像请求,以及使用工具如Autoprefixer自动添加浏览器前缀,来提升加载速度。 七、语义化CSS命名 遵循语义化命名原则,如BEM(Block ...
本资料包聚焦于CSS的学习,通过一系列从简单到复杂的实例,旨在帮助初学者逐步掌握CSS的核心概念和技术。 1. **基础概念** - **选择器与属性**:CSS中的选择器用于定位HTML元素,如id选择器(#id),类选择器(.class...
9. **CSS优化技巧**:如减少选择器的复杂性,合理使用内联样式、内部样式表和外部样式表,以及利用CSS Sprites和数据URI等方法提升页面性能。 通过这些实例,你不仅可以学习到CSS的实际应用,还能培养解决问题的...
8. **性能优化**:学习减少CSS文件大小、利用CSS Sprites、避免使用行内样式和!important等方法,以提升网页加载速度。 9. **浏览器兼容性**:理解各种浏览器对CSS特性的支持情况,学习如何编写兼容性良好的代码。 ...
其次,CSS禅意花园中的实例还可能涉及到CSS选择器的复杂应用,如伪类(`:hover`, `:active`, `:focus`)和伪元素(`:before`, `:after`),以及更高级的选择器如属性选择器、后代选择器和兄弟选择器。这些技术可以...
### 四、CSS Sprites实例教程 1. **素材准备**:将多个ico图标素材合并成一张大图。 2. **实现效果**:例如在一个列表中,每个项目前显示不同的图标。 3. **CSS代码**:使用`list-style-type:none`去除默认列表样式...
css sprite直译过来就是CSS精灵。...这样做的好处也是显而易见的,因为图片多的话,会增加http的请求,无疑促使了网站性能的减低,特别是图片特别多的网站,如果能用csssprites降低图片数量,带来的将是速度的提升
本实例将通过"div+css 切图"的实践,深入探讨如何高效地将设计稿转化为可交互的网页。 切图,即切片图,是指设计师完成设计后,根据网页元素的形状和大小,将其切割成多个图片,以便于前端开发者更好地实现视觉效果...
本篇文章将深入探讨CSS特效的实例,旨在为读者提供灵感和实用技巧。 一、CSS布局技巧 1. Flexbox布局:Flexbox是CSS3引入的一种新的布局模式,适用于一维布局,如行或列。它可以轻松地实现元素的对齐、自适应大小...
3. 利用工具:使用自动化工具(如SpriteGenerator、CSS Sprites Generator等)自动生成Sprite图和对应的CSS代码,提高工作效率。 五、响应式设计中的应用 在响应式设计中,CSS Sprite同样适用,但需注意适应不同...
本资源"CSS精华实例参考"集合了多种实用且高效的CSS技巧和实例,对于提升网页设计水平大有裨益。下面我们将深入探讨其中可能涵盖的关键知识点。 1. **选择器**:CSS选择器是定位HTML或XML元素的基础,包括类选择器...