一、把小图放在一张大图中,先排版好。上几张图看看,就比如这个:

谷歌:

淘宝:

土豆右下角悬浮框:

1、把用到的小图都放到了一张大图里,其中的小图之间的排版是有点规律的,比如说淘宝那张,类似的小图放置成同一列,这样就计算小图显示位置的时候,只要知道第一个小图的位置,同一列的小图,left(X坐标)一样,只需要改top(Y坐标)。这样就方便了许多。

二、使用大图。

在哪个位置需要使用这个小图,就把大图作为background-images插入。然后来根据这个小图的大小调整left 和top。

用到的css属性是background-image、background-position、background-repeat、这几个属性。

或者使用background这个复合属性写在一起就好。

三、我的第一个demo,我一定要实现这样的效果

我先上张图说明我要做什么:

这个例子的意义是让我明白要怎么去显示想要的小图,没有其他的意义了哈哈。

我的思路是,ul li内内嵌一个<div></div>(当然li是块级元素)。

详细的布局代码:

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
ul.ul1
{
width:200px;
height:200px; }
ul.ul1 li
{
height:40px; }
.star
{
width:30px;
height:18px;
border:1px solid black;
display:inline-block; /*将对象呈递为内联对象,但是对象的内容作为块对象呈递*/ /*这里使用是为了div跟li能不使用float属性处在同一行,最后div和li对其是用到inline-block属性*/
vertical-align:top; background-image:url(images/minibar.png); /*显示小图*/
background-repeat:none;
background-position:2px -55px;
}
.num9
{
width:30px;
height:18px;
border:1px solid black;
display:inline-block;
vertical-align:top; background-image:url(images/minibar.png); /*显示小图*/
background-repeat:none;
background-position:-205px -20px;
}
</style>
</head>
<body>
<ul class="ul1">
<li>项目一<div class="star"></div></li>
<li>项目一<div class="num9"></div></li>
<li>项目一</li>
<li>项目一</li>
</ul>
</body>
</html>

小图完整出来了。

心得:

1、书写background-position时一般都是负值,因为是从大图的左上角作为(0,0)点。

2、之前没有学习css sprite之前,是想着怎么把一张大图不要的部分怎么遮挡掉。现在明白了是怎么回事。比如我上面要显示那朵小云,把大图放进div中,然后设置这个div的width和height,再定位一下background-position的位置。最后,大图就只在div中显示我们需要的一小部分。

3、我还要深入学习要怎么把小图排版好成一个大图,更容易测量位置,且不互相干扰。

三、为什么要使用CSS Sprites

减少HTTP请求次数,从而提高了网站性能。

因为假设有6个小图,就有6个HTTP请求,但是如果是放在一个大图里,就只需要1次,因为你要的6个小图都在一张大图里,请求一次后不用再次发送HTTP请求去请求图片资源。

CSS Sprites的详细使用步骤的更多相关文章

  1. CSS3与页面布局学习笔记(五)——Web Font与CSS Sprites(又称CSS精灵、雪碧图)技术

    一.web font web font是应用在web中的一种字体技术,在CSS中使用font-face定义新的字体.先了解操作系统中的字体: a).安装好操作系统后,会默认安装一些字体,这些字体文件描 ...

  2. CSS Sprites+CSS3 Icon Font

    CSS Sprites+CSS3 Icon Font CSS Sprites在国内很多人叫CSS精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来, ...

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

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

  4. 【转】CSS Sprites教程大全(使用方法、工具介绍)

    什么是CSS Sprite CSS Sprite 又叫CSS精灵,是目前大型网站中经常运用的图片处理方式.它的原理很简单,将网站上零散的小图片(或图标)整合在一张大图上,再用CSS中“backgrou ...

  5. dataURI V.S. CSS Sprites 移动端

    英文原文:http://www.mobify.com/blog/css-sprites-vs-data-uris-which-is-faster-on-mobile/ 中文翻译:http://www. ...

  6. boi剖析 - 基于webpack的css sprites实现方案

    本文是58到家前端工程化集成解决方案boi的博文系列之一.boi是基于webpack打造的一站式前端工程化解决方案,现已开源Github. 作为前端构建工具不可或缺的一个环节,自动生成css spri ...

  7. CSS Sprites ——雪碧图的使用方法

    首先解释下CSS Sprites是什么:有称CSS精灵,有称CSS雪碧的,无论叫什么,他的作用就是把网页上很多小图标放到一张图片里面,然后通过CSS里面的background-position来控制每 ...

  8. CSS Sprites的概念、原理、适用范围和优缺点

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

  9. 什么是css sprites,如何使用?

    css sprites:精灵图(雪碧图):把一堆小图片整合在一张大图上,通过背景图片相关设置(背景图片.背景图是否重复.背景图定位),显示图片,减轻服务器对图片的请求数量 优点: 1.减少网页的HTT ...

随机推荐

  1. 事件tou

    #define EV_TIMER_RESOLUTION 1 /* 1 msec */ #define EV_READ_EVENT EPOLLIN #define EV_WRITE_EVENT EPOL ...

  2. Tarjan系列算法总结(hdu 1827,4612,4587,4005)

    tarjan一直是我看了头大的问题,省选之前还是得好好系统的学习一下.我按照不同的算法在hdu上选题练习了一下,至少还是有了初步的认识.tarjan嘛,就是维护一个dfsnum[]和一个low[],在 ...

  3. 关于Matlab作图的若干问题

          看到了北京一则新闻,想到如何测试双向镜子?百度之.              只要做以下简单的测试:把你的指甲尖放在镜子表面,如果在指甲尖与倒映图像之间有间隙,那就是真的镜子.然而,如果你 ...

  4. GSM、GPRS、EDGE、2G、3G与WAP的关系

    1.GSM(Global System of Mobile communication)即全球移动通讯系统: 是目前使用人数最大的移动通信网络,就是2G的移动通信技术,是一种电路交换系统.这种网络仅提 ...

  5. Hibernate 注解时 hibernate.hbm.xml的配置方法 以及与SSH整合里的配置方式

    ①纯Hibernate开发: 当你在Bean中写入注解后,需要告诉hibernate哪些类使用了注解. 方法是在hibernate.hbm.xml文件中配置 <!DOCTYPE hibernat ...

  6. The APR based Apache Tomcat Native library

    Tomcat启动的时候出现下面这样的提示: 2015-11-06 14:24:12 org.apache.catalina.core.AprLifecycleListener init 信息: The ...

  7. [topcoder]BinaryCards

    现在觉得有空时可以刷一下topcoder的DIV 2的Lvl 3的题目.感觉和刷LeetCode和WikiOi都是不一样的. http://community.topcoder.com/stat?c= ...

  8. Android的那些轮子

    整个AOSP代码,包天包地,从kernel,libc,gui,net……简直包括了绝大多普通程序员职业生涯涉及的整个领域.其实,开源界早已经遇到并且解决了Android的很多问题,不过google讨厌 ...

  9. 只看Delphi自带的WnAPI帮助似乎不够

    比如,MessageBox在Delphi自带帮助的参数说明中,对其第四个参数的MB_类型说明只有最常见的6种类型,这么多年搞得我天经地义的以为MessageBox就是这么简单.今天看了一位前辈写的老代 ...

  10. Navicate使用注意事项

    2.      Navicat如何连接数据库:点击连接——>输入连接名,然后如果是本机不用更改localhost,如果是别的主机,要将对方 的ip地址输入,端口号3306不变,用户名root,密 ...