CSS Sprite雪碧图
- 静态图片,不随用户信息的变化而变化
- 小图片,图片容量比较小(3k - 5k)
- 加载量比较大 大图不建议拼成雪碧图
基本目的:有效的减少http请求数量,加速内容显示(因为每请求一次,就会和服务器链接一次,建立链接是需要额外时间的)
实现原理: 基于CSS background-position属性控制 通常来讲,设置一个区域的背景图,然后来控制背景图位置实现功能
我们可以通过坐标系来看(更加清晰):
控制一个层,可显示的区域范围大小,通过一个窗口,进行背景图滑动
实现方式:
1.PS手动拼图
2.使用sprite工具自动生成 -->CssGaga、Css Sprite Tools
工具使用步骤
①、用ps把小图片切好
②、打开软件
③、打开图片
点击左上角的“选择多幅小背景图片”,选择多张图片,点击打开
④、排布图片
可以选择上面的最上面按钮今天横竖的默认排布,也可以鼠标选中图片拖动位置,拖动完成后程序会根据内部图片的位置生成面积最小的雪碧图,当然也会改变相应的图片位置
⑤、代码生成
点击“选择目录并生成测试文件”按钮
所需要的代码就在css/bgs.css文件里面
所需要的图片在imgs里
例如:
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
<style>
blockquote, body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, hr, input, legend, li, ol, p, pre, td, textarea, th, ul{
margin: 0;
padding: 0;
}
h3 {
display: block;
margin: 0;
padding: 0;
}
.cat {
position: relative;
width: 150px;
background: #f8f8f8;
border: 1px solid #bbb;
}
ol, ul {
list-style: none;
}
li {
z-index: 2;
position: relative;
display: block;
height: 31px;
line-height: 31px;
overflow: hidden;
margin: 1px 10px 0;
vertical-align: bottom;
border-bottom: 1px solid #dedede
}
li h3 {
font-size: 14px;
font-weight: 400;
}
li i {
background: url(http://img.mukewang.com/539a950e00015ba500710200.jpg);
/* 注意url使用自己的路径*/
display: inline;
float: left;
margin: 3px 10px 0 0;
height: 24px;
width: 30px
}
</style>
</head>
<body>
<div class="cat">
<ul >
<li>
<i></i>
<h3>服装内衣</h3>
</li>
<li class="cat-2">
<i></i>
<h3>鞋包配饰</h3>
</li>
<li class="cat-3">
<i></i>
<h3>运动户外</h3>
</li>
<li class="cat-4">
<i></i>
<h3>珠宝手表</h3>
</li>
<li class="cat-5">
<i></i>
<h3>手机数码</h3>
</li>
<li class="cat-6">
<i></i>
<h3>家电办公</h3>
</li>
<li class="cat-7">
<i></i>
<h3>护肤彩妆</h3>
</li>
<li class="cat-8">
<i></i>
<h3>母婴用品</h3>
</li>
</ul>
</div>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
<style>
blockquote, body, button, dd, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, hr, input, legend, li, ol, p, pre, td, textarea, th, ul
{
margin: 0;
padding: 0;
}
h3 {
display: block;
margin: 0;
padding: 0;
}
.cat {
position: relative;
width: 150px;
background: #f8f8f8;
border: 1px solid #bbb;
}
ol, ul {
list-style: none;
}
li {
z-index: 2;
position: relative;
display: block;
height: 31px;
line-height: 31px;
overflow: hidden;
margin: 1px 10px 0;
vertical-align: bottom;
border-bottom: 1px solid #dedede
}
li h3 {
font-size: 14px;
font-weight: 400;
}
li i {
background: url(http://img.mukewang.com/539a950e00015ba500710200.jpg);
display: inline;
float: left;
margin: 3px 10px 0 0;
height: 24px;
width: 30px
}
.cat-1 i{
background-position: 0 0;
}
.cat-2 i{
background-position: 0 -24px;
}
.cat-3 i{
background-position: 0 -48px;
}
.cat-4 i{
background-position: 0 -72px;
}
.cat-5 i{
background-position: 0 -96px;
}
.cat-6 i{
background-position: 0 -120px;
}
.cat-7 i{
background-position: 0 -144px;
}
.cat-8 i{
background-position: 0 -168px;
}
.cat-9 i{
background-position: 0 -192px;
}
</style>
</head>
<body>
<div class="cat">
<ul >
<li>
<i></i>
<h3>服装内衣</h3>
</li>
<li class="cat-2">
<i></i>
<h3>鞋包配饰</h3>
</li>
<li class="cat-3">
<i></i>
<h3>运动户外</h3>
</li>
<li class="cat-4">
<i></i>
<h3>珠宝手表</h3>
</li>
<li class="cat-5">
<i></i>
<h3>手机数码</h3>
</li>
<li class="cat-6">
<i></i>
<h3>家电办公</h3>
</li>
<li class="cat-7">
<i></i>
<h3>护肤彩妆</h3>
</li>
<li class="cat-8">
<i></i>
<h3>母婴用品</h3>
</li>
</ul>
</div>
</body>
</html>