CSS Sprite定位实现_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 11:43:42
原创
1302人浏览过

何为CSS Sprite

通常我们把它叫做css图像拼合技术,当然还有人把css sprites叫做”css贴图定位”。

原理

CSS Sprites 原理:其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

优点

  1. 利用CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;

  2. CSS Sprites能减少图片的字节,曾经比较过多次3张图片合并成1张图片的字节总是小于这3张图片的字节总和。

  3. 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率。

    立即学习前端免费学习笔记(深入)”;

  4. 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。维护起来更加方便。

如何制作合并图片

  • CSS Sprites生成工具
  • 用PS制作生成
  • CSS Sprite定位实现(PS确定X,Y)

    预备知识

  • DIV+CSS基础(尤其是background及background-position这两个参数)
  • PS基础
  • 素材?png格式

    获取图片位置

    1. 打开PS,点击右侧的信息栏
    2. 使用辅助线工具确定位置
    3. 查看图标与图标之间的间隔(手动制作这个图片的时候最好均排,方便推算,,这图就是相隔20px) ,看图

    Tips:

  • background-position是以图片的左上角为基准的,也就是0 0
  • 参数可以像素和百分比混合使用(eg:5px 20%),只有一个参数的时候,另一个参数默认为50%
  • 代码实现(CSS内含注释)

    HTML: index.html

    <!DOCTYPE html><html lang="zh"><head>  <meta charset="UTF-8">  <title>CSS_Sprite</title>  <link rel="stylesheet" href="css/style.css"></head><body>       <h1>只取一部分做演示</h1>        <div class="content">          <ul>            <li><a href="#"><i class="icon_fdj"></i></a></li>            <li><a href="#"><i class="icon_xj"></i></a></li>            <li><a href="#"><i class="icon_dy"></i></a></li>            <li><a href="#"><i class="icon_xx"></i></a></li>          </ul>          <ul>            <li><a href="#"><i class="icon_xxk"></i></a></li>            <li><a href="#"><i class="icon_bjb"></i></a></li>            <li><a href="#"><i class="icon_dw"></i></a></li>            <li><a href="#"><i class="icon_bq"></i></a></li>          </ul>          <ul>            <li><a href="#"><i class="icon_info"></i></a></li>            <li><a href="#"><i class="icon_infoa"></i></a></li>            <li><a href="#"><i class="icon_qes"></i></a></li>            <li><a href="#"><i class="icon_cz"></i></a></li>          </ul>          <ul>            <li><a href="#"><i class="icon_hb"></i></a></li>            <li><a href="#"><i class="icon_dp"></i></a></li>            <li><a href="#"><i class="icon_fj"></i></a></li>            <li><a href="#"><i class="icon_ck"></i></a></li>          </ul>        </div></body></html>
    登录后复制

    CSS: style.css

    html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed,figure, figcaption, footer, header, hgroup,menu, nav, output, ruby, section, summary,time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }/*CSS reset*/h1{ text-align:center; font-size:30px; font-weight:bold; }.content{ width: 176px; height: 176px; margin: 0 auto; border:2px solid #2af1d6; padding: 10px; }/*主块大小,位置*/ul{ list-style: none; display: inline-block; }/*取消列表样式,设置内联块*/i{ display: block; margin:10px; width: 17px;height:17px;background: url(../img/cssspirit.png) no-repeat; }/*设置图标为块,定义宽高及背景*/ul li a:link{text-decoration: none;} /*取消下划线*/ul li a:hover .icon_fdj{ background-position:-21px -132px; }ul li a:hover .icon_xj{ background-position:-62px -132px; }ul li a:hover .icon_dy{ background-position:-102px -132px; }ul li a:hover .icon_xx{ background-position:-122px -132px; }ul li a:hover .icon_xxk{ background-position:-21px -152px; }ul li a:hover .icon_bjb{ background-position:-62px -152px; }ul li a:hover .icon_dw{ background-position:-102px -152px; }ul li a:hover .icon_bq{ background-position:-122px -152px; }ul li a:hover .icon_info{ background-position:-21px -172px; }ul li a:hover .icon_infoa{ background-position:-62px -172px; }ul li a:hover .icon_qes{ background-position:-102px -172px; }ul li a:hover .icon_cz{ background-position:-122px -172px; }ul li a:hover .icon_hb{ background-position:-21px -192px; }ul li a:hover .icon_dp{ background-position:-62px -192px; }ul li a:hover .icon_fj{ background-position:-102px -192px; }ul li a:hover .icon_ck{ background-position:-122px -192px; }/*浮动背景位置*/.icon_fdj{ background-position: -1px -132px; }.icon_xj{ background-position:-42px -132px; }.icon_dy{ background-position:-82px -132px; }.icon_xx{ background-position:-122px -132px; }.icon_xxk{ background-position:-1px -152px; }.icon_bjb{ background-position:-42px -152px; }.icon_dw{ background-position:-82px -152px; }.icon_bq{ background-position:-122px -152px; }.icon_info{ background-position:-1px -172px; }.icon_infoa{ background-position:-42px -172px; }.icon_qes{ background-position:-82px -172px; }.icon_cz{ background-position:-122px -172px; }.icon_hb{ background-position:-1px -192px; }.icon_dp{ background-position:-42px -192px; }.icon_fj{ background-position:-82px -192px; }.icon_ck{ background-position:-122px -192px; }/*基本的定位*/
    登录后复制

    效果图

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习
    PHP中文网抖音号
    发现有趣的

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号