zoukankan      html  css  js  c++  java
  • CSS Sprite "精灵图"

    CSS Sprite

    CSS Sprites叫 CSS精灵或者雪碧图,是一种网页图片应用处理方式。

    CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中。

    再利用CSS的"background-image","background-repeat","background-position"的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

     

    为什么建议使用CSS Sprite

    在网页访问中,客户端每需要访问一张图片都会向服务器发送请求,所以,访问的图片数量越多,请求次数也就越多,造成延迟的可能性也就越大。

    所以,CSS Sprites技术加速的关键,并不是降低质量,而是减少个数,当然随之而来的增加内存消耗,CSS Sprites图片繁琐的合成等缺点在网站性能的提升前,也就不足为道了。

    CSS Sprites 的优点:     

    • 减少图片的字节
    • 减少了网页的http请求,从而大大的提高了页面的性能
    • 减少命名难的问题

    CSS Sprites 的缺点:    

    • 在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景。
    • 在宽屏,高分辨率的屏幕下的自适应页面,图片如果不够宽,很容易出现背景断裂。
    • CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的CSS,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动CSS。

    再说说background-position

    只有真正的了解background-position的特性才能在需要的场景更好的运用它。

    background-position 属性设置背景图像的起始位置。
    这个属性设置背景原图像(由 background-image 定义)的位置,背景图像如果要重复,将从这一点开始。
    提示:
    background-position属性设置背景原图像(由 background-image 定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。

    了解了background-position属性的用法,使用雪碧图之前,我们需要知道雪碧图中各个图标的位置。

    从上面的图片不难看出雪碧图中各个小图标(icon)在整张雪碧图的起始位置,例如第一个图标(裙子)在雪碧图的起始位置为 x:0,y:0,第二个图标(鞋子)在雪碧图的起始位置为 x:0,y:50px,第三个图标(足球)在雪碧图的起始位置为x:0,y:100px,依次类推可以得出各个图片相对于雪碧图的起始位置。

    以上面的雪碧图为例(实际雪碧图中各个小图片的起始位置和上面的展示图不同)用一个Demo来阐述它的使用方法。

    HTML

    <div class="box">
        <span class="icon1"></span>
        <span class="icon2"></span>
        <span class="icon3"></span>
        <span class="icon4"></span>
    </div>
    

    CSS

     <style>
            .box {
               600px; 
              height:300px; 
              border: 3px solid #ccc; 
              background-color: #8064A2; 
             }
             span {
              display: inline-block; 
               25px; 
              height: 25px; 
              border: 3px solid #ccc;
              background-image: url(css/img/sidebar.png); 
              background-repeat: no-repeat;
              margin: 5px;
             }
            .icon1 {
              background-position: 0 0;
             }
            .icon2 {
              background-position: -40px 0;
             }
            .icon3 {
              background-position: 0 -25px;
             }
            .icon4 {
              background-position: -40px -25px;
             }
        </style>
    

    效果图

    合成CSS Sprite的工具

    利用雪碧图显示icon的小demo https://evenyao.github.io/css-sprite-demo/

    制作CSS Sprite工具详解 http://www.cnblogs.com/wang4517/p/4476758.html

  • 相关阅读:
    win7下的vxworks总结
    ubuntu 无法获得锁 /var/lib/dpkg/lock
    项目中用到了的一些批处理文件
    win7下安装 WINDRIVER.TORNADO.V2.2.FOR.ARM
    使用opencv统计视频库的总时长
    January 05th, 2018 Week 01st Friday
    January 04th, 2018 Week 01st Thursday
    January 03rd, 2018 Week 01st Wednesday
    January 02nd, 2018 Week 01st Tuesday
    January 01st, 2018 Week 01st Monday
  • 原文地址:https://www.cnblogs.com/evenyao/p/9262371.html
Copyright © 2011-2022 走看看