说明:为了减少http请求数量,加速网页内容显示,很多网站的导航栏图标、登录框图片等,使用的并不是标签,而是CSS Sprite雪碧图。本课程分析了CSS Sprite雪碧图的实现原理,详细讲解制作方法,实现完整效果,让你快速掌握CSS Sprite雪碧图技术。
课程学习链接:https://www.imooc.com/learn/93
学习文件存放github地址: https://github.com/wanghuiwiki/Learning-notes
课程目录
- 第1章 CSS Sprite雪碧图介绍及实现原理
- 第2章 CSS Sprite雪碧图实现方式
- 第3章 CSS Sprite雪碧图的应用
- 第4章 编程挑战
第1章 CSS Sprite雪碧图介绍及实现原理
1-1CSS Sprite雪碧图使用场景
1.静态图片,不随用户信息的变化而变化
2.小图片,图片容量比较小
3.一些大图不建议拼成雪碧图{加载量比较大]
有效减少http请求数量
加速内容显示
每请求一次,就会和服务器链接一次
建立链接是需要额外时间的.
2.小图片,图片容量比较小
3.一些大图不建议拼成雪碧图{加载量比较大]
有效减少http请求数量
加速内容显示
每请求一次,就会和服务器链接一次
建立链接是需要额外时间的.
1-2CSS Sprite雪碧图实现原理
主要运用css属性background-position,调取对应的坐标/如下图:
由上可得|控制一个层,可显示的区域范围大小,通过一个窗口,进行背景图的滑动.
第2章 CSS Sprite雪碧图实现方式
2-1 CSS Sprite雪碧图实现方式
介绍使用PS手动拼图和使用sprite工具自动生成雪碧图的方法
CssGaga-从下载安装到使用(内附下载地址)
第3章 CSS Sprite雪碧图的应用
通过简单的导航实例,完成静态页面,讲解如何设置background-position属性来使用css sprite雪碧图
3-1 静态页面实现
3-2 编程练习代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> ul{ list-style: none; } h3{ margin: 0; } li h3{ font-size: 14px; font-weight: 400; } li{ height: 31px; line-height: 31px; border-bottom: 1px solid #dedede; } .cat{ width: 150px; border:1px solid #f8f8f8; background: #fafafa; } </style> </head> <body> <ul class="cat"> <li class="cat-1"><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> <!-- 以下为可删除部分 --> <hr> <blockquote> 任务<br> 一、准备一个空白的HTML页面,同时完成css reset样式<br> 提示:<br> 1.reset样式可以参考别的大型网站的reset规则。<br> 2.要添加utf-8的meta标签<br> 二、完成页面当中的展示列表HTML的结构代码<br> 提示:<br> 1.注意标签的语义化,无序列表需使用ul和li。<br> 2.标题部分要使用h3标签。<br> 3.每个li结构当中会有一个i标签用来展示icon。<br> 三、为列表的容器添加class和样式,同时reset列表本身的容器<br> 提示:<br> 1.注意要reset H3的默认样式。<br> 2.li和ul要去掉默认的样式。<br> 3.为ul的容器div增加class,并设置样式。<br> </blockquote> </body> </html>
3-3 CSS Sprite 应用
3-4 编程练习代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> ul{ list-style: none; margin: 0; padding: 0; } h3{ margin: 0; } li h3{ font-size: 14px; font-weight: 400; } li{ height: 31px; line-height: 31px; border-bottom: 1px solid #dedede; } .cat{ width: 150px; border:1px solid #f8f8f8; background: #fafafa; } /*以下为新增代码\css雪碧图样式*/ li i{ background: url(images/sidebar.png); float: left; display: inline; width: 30px; height: 25px; margin: 3px 10px 0 0; } .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: -40px 0; } </style> </head> <body> <ul class="cat"> <li class="cat-1"><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> <!-- 修改X轴坐标 --> <li class="cat-9"><i></i><h3>其他分类</h3></li> </ul> <!-- 以下为可删除部分 --> <hr> <blockquote> 一、完成列表的结构后开始为列表中li i添加雪碧图样式<br> 提示:<br> 1.首先为li添加不同的class,因为他们的background position值是不同的<br> 2.根据li上添加的class,书写响应的样式<br> 3.注意position的值为负数,因为雪碧图使用的坐标系是第四象限 </blockquote> </body> </html>
第4章 编程挑战
要实现一个这样登陆框的效果,需要写出完整的HTML和CSS代码
1.注意标签语义化,按钮要使用Button,同时要reset button 默认样式。
2.表单使用form,输入框使用input,表单要使用css美化,例如背景色和边框等。
3.按钮样式要使用雪碧图完成。
编程挑战代码
<!-- 来源网址https://img1.sycdn.imooc.com/down/539a9c2300018a2d00000000.rar --> <html> <head> <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; } .container { width: 220px; margin-right: 35px; background: #ebf2fa; border: 1px solid #d4d4d4; border-bottom-color: #AAA; border-top: 0; height: 692px; box-shadow: 0 1px 1px #CCC; background: #ebf2fa url(images/sidebar-bg.png) left top no-repeat; margin-top: -2px; } .login-form { padding: 35px 15px 15px; } .login-form dl { line-height: 20px; } .login-form dl.pwd { margin: 15px 0 0; } .bottom { margin-top: 15px; } .top dd,.pwd dd{ width: 186px; background: #FFF url(images/bg.png) 0 -76px no-repeat; border: 1px solid #adb6c9; border-radius: 3px; height: 32px; box-shadow: 0 0 1px #FFF; padding: 1px; } .login-form .input-text { background: transparent; font-size: 14px; height: 32px; line-height: 32px; padding: 0; margin: 0 0 0 30px; width: 155px; border: 0; } .login-btn { width: 190px; height: 38px; text-indent: -9999em; border: 0; background: url(images/sp.png) no-repeat; cursor: pointer; } .regnow { margin: 0 15px; padding: 17px 0 15px; } .regnow input{ background-position: 0 -38px; border: 0; padding: 0 0 3px 0; } </style> </head> <body> <div class="container"> <form method="post" class="login-form"> <dl class="top clearfix"> <dd> <input type="text" name="email" class="input-text"> </dd> </dl> <dl class="pwd clearfix"> <dd> <input type="text" name="email" class="input-text"> </dd> </dl> <dl class="bottom"> <input type="submit" class="input-submit login-btn" value="登录"> </dl> </form> <div class="regnow"> <input type="button" class="input-button login-btn" value="注册" > </div> </div> </body> </html>
转载请注明:大灰牛博客 » 学习CSS Sprite雪碧图