`

css sprite应用实例

    博客分类:
  • css
css 
阅读更多
CSS Sprites技术被国内一些人称为CSS雪碧图,其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。
 
CSS 雪碧图技术不是什么新东西,在网页应用中已经有几年了,现在的网页开发在图标图片的应用上已经趋向于使用字体图标,这是一种比CSS雪碧图技术更优雅的图标应用方式。
 
一下是两张CSS Sprite样图:
sidebar.png
在网站中的导航最常见最明显,一些地方的零碎小图标也多使用。
CSS知识点:
    • background-image
    • backgorund-position
  • 特点:
  1. 相对于当个小图标,它节省文件体积和服务请求次数。将所有零碎的网页背景图片整合到一起,这样做可以有效的减少http对图片的请求次数,而不需要加载多次加载零碎的背景图片,所以合理的利用好它可以有效的提高网页的加载速度。
  2. 一般情况下,你需要保存为PNG-24的文件格式。
  3. 可以设计出丰富多彩的颜色体表。
  • 难点:
    1. 你需预先确定每个小图标的大小
    2. 注意小图标与小图标之间的距离
    3. 细心、耐心
    PNG-24的图片格式:PNG-24可减少毛边。

    background-position 索引值

    应用实例:仿某商城分类导航
    效果图如下:
    首先,创建基本的HTML结构
    HTML:

    <ulclass="sprite">
    <liid="1">
    <sstyle="background-position:00;"class="s-icon"></s>
    <ahref="index.html?cat=1">顺丰速运1</a>
    </li>
    <liid="2">
    <sstyle="background-position:0-40px;"class="s-icon"></s>
    <ahref="index.html?cat=2">顺丰速运2</a>
    </li>
    <liid="3">
    <sstyle="background-position:0-80px;"class="s-icon"></s>
    <ahref="index.html?cat=3">顺丰速运3</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运4</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运5</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运6</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运7</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运8</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运9</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运10</a>
    </li>
    <li>
    <sclass="s-icon"></s>
    <ahref="">顺丰速运11</a>
    </li>
    </ul>

    效果如下:
    还没有样式,我们为他添加一些基本的样式
    CSS:

    ul{ list-style: none;margin:0; padding:0;}
    .sprite{
    margin:10pxauto;
    width:206px;
    border:1px solid #b51600;
    }
    .sprite li{
    cursor: pointer;
    height:42px;
    width:206px;
    background-color:#b51600;
    border-bottom:1px solid #911001;
    border-top:1px solid #c11e08;
    }
    .sprite li a {
    color:#fff;
    line-height:42px;
    font-size:14px;
    }

    效果如下:
    接下来我们为li下的s标签添加图和样式:
    CSS:

    .sprite li s{
    height:40px;
    width:24px;
    display: block;
    margin-left:10px;
    margin-right:8px;
    float: left;
    background-image: url("../images/s-icon.png");
    }
    .sprite li:hover{
    background-color:#fff;
    border-color:#fff
    }
    .sprite li:hover a{
    color:#b51600;
    }
    .sprite li:hover s{
    }

    效果如下:
    通过前面介绍的background-position 索引值,用JS统一创建定位坐标,并添加鼠标滑动切换效果:
    JavaScript:

    $(function(){
    var iconH = $(".sprite").find("s").height(),
    triggerLi = $(".sprite").children("li");
    //console.log(iconH);
    triggerLi.each(function(){
    var $this = $(this),
    $index = $this.index();
    //console.log($index)
    //console.log(iconH*$index);
    $this.children("s").css("background-position","0 -"+ iconH*$index +"px")
    $this.hover(function(){
    // 鼠标移入
    $this.children("s").css("background-position","-24px -"+ iconH*$index +"px")
    },function(){
    // 鼠标移出
    $this.children("s").css("background-position","0 -"+ iconH*$index +"px")
    });
    });

    //当前页面属于某个功能时,点亮相应菜单项,这里通过地址参数判断,实际项目中应该从后台读取标志
    var $cat = parseInt(getQueryString("cat"));
    var poistions ="-24px -"+ iconH*($cat-1)+"px";
    triggerLi.eq($cat-1).css({"background-color":"#FFF"}).find("a").css("color","red");
    triggerLi.eq($cat-1).find("s").css({"background-position":poistions});
    });
    // 获取URL参数
    function getQueryString(name){
    var reg =newRegExp("(^|&)"+ name +"=([^&]*)(&|$)","i");
    var r = window.location.search.substr(1).match(reg);
    if(r !=null)return unescape(r[2]);returnnull;
    }

     

    这样我们就做好了这个导航效果,因为春静态的关系,当前页面点亮对应菜单项有BUG,但基本已经全部表达出我的意思了。
    分享到:
    评论

    相关推荐

      css sprite示例源码

      在网页设计中,特别是在响应式设计中,CSS Sprite被广泛使用。本示例源码将深入探讨这一技术及其应用。 一、CSS Sprite基本原理 CSS Sprite的核心思想是将多个小图像合并到一张大图(称为Sprite图)中,然后通过CSS...

      CSSSprite示例代码

      **CSS Sprite技术详解** 在网页设计中,CSS Sprite(精灵图)是一种常见的优化网页加载速度的方法,它将多个小图像合并到一个大图中,通过CSS的定位来显示需要的部分。这种技术尤其适用于那些需要频繁加载的小图标...

      css sprite原理优缺点及使用

      ### CSS Sprite 原理与应用详解 #### CSS Sprite 概念 CSS Sprite,中文常称为“CSS精灵”,是一种常见的前端技术,用于优化网站加载速度和用户体验。它通过将多个小图片合并为一张大图,并借助CSS背景定位来实现...

      css sprite简单实例

      本文章向码农们介绍css sprite使用方法和基本使用实例,需要的码农可以参考一下。 一、什么是css sprites css sprites直译过来就是CSS精灵。通常被解释为“CSS图像拼合”或“CSS贴图定位”。其实就是通过将多个图片...

      CSS3 Sprite僵尸行走动画特效.zip

      【CSS3 Sprite僵尸行走动画特效】是一种利用CSS3的先进特性来实现的动态效果,它巧妙地结合了精灵图(Sprite)技术和CSS3的动画功能,以创建出一个逼真的僵尸行走循环动画。在Web开发中,CSS3 Sprite技术是为了减少...

      css sprite 技术学习

      三、CSS Sprite实例 - Google Korea:结合了图片合并和背景定位,实现了高效加载的界面。 - CSS Menus:利用CSS Sprite技术创建菜单,实现动态效果的同时,减少了HTTP请求。 四、CSS Sprite的问题及解决方案 尽管...

      css sprite原理优缺点及使用示例介绍

      **CSS Sprite的应用实例** - 文本编辑器、博客平台等界面中,通常有大量的小图标,如表情、工具栏按钮等,使用CSS Sprite可以避免单独加载每个图标,提高加载速度。 - 广告和动态横幅设计,通过CSS Sprite可以实现...

      模拟谷歌20110510使用的css动画

      在谷歌的这个案例中,可能使用了CSS Sprite来管理Logo的静态部分,同时结合CSS动画实现动态效果。 从压缩包子文件的文件名称列表来看,“模拟谷歌20110510使用的css动画”可能包含了实现这个动画的所有相关文件,...

      css经典教程 真实案例

      这可以通过合并CSS文件、删除未使用的样式、使用雪碧图(Sprite)和CSS Sprites等方法实现。 10. **重置与正常化**:通过重置(Reset)或正常化(Normalize)CSS,可以消除不同浏览器间的默认样式差异,确保跨...

      web标准 DIV + CSS 实例

      6. **优化性能**:减少HTTP请求,合并CSS文件,使用CSS Sprite技术处理背景图像,以及利用CSS3的新特性(如Flexbox和Grid布局)提高布局效率。 在文件名为"W3CSS.COM"的压缩包中,可能包含了一些示例代码,用于展示...

      CSS3 steps属性制作僵尸行Sprite动画特效源码.zip

      在CSS中,我们可以使用`background-position`属性配合`animation`属性来实现Sprite动画。 在这个示例中,僵尸行的动画可能包含多个僵尸的行走帧,这些帧被组织在一个大的背景图像中。通过动态调整`background-...

      CSS3僵尸行走动画代码

      在这个案例中,开发者通过结合图像精灵(CSS Sprite)技术和动画,使得僵尸形象在网页上呈现出一种行走的动作效果。这种动画效果不仅在游戏或娱乐网站上广泛应用,也能为其他类型的网页增添趣味性,吸引用户注意力。...

      CSS网络使用教程宝典

      《CSS网络使用教程宝典》是一本面向初学者的详尽指南,旨在帮助读者全面掌握CSS(层叠样式表)的应用技术。CSS是网页设计中不可或缺的一部分,它负责定义网页内容的布局、颜色、字体等视觉表现。通过学习CSS,你可以...

      CSS3 Sprite僵尸行走动画特效特效代码

      在本案例中,我们将探讨如何使用CSS3 Sprite创建一个僵尸行走的动画特效。 **动画特效的实现** 1. **steps函数** `steps()`是CSS3中的一个关键帧动画函数,用于指定动画值变化的方式。它将动画过程分为若干个步骤...

      div+css切图实例3

      3. **CSS精灵(Sprite)**:为了优化加载性能,多个小图标可以合并为一张大图(CSS精灵),然后通过`background-position`来显示其中的部分。 在实例3中,我们可能会遇到如何通过`div`和CSS实现复杂的布局和交互...

      关于CSS的经典精美实例

      2. **第2章**:可能会讲解CSS的层叠和继承规则,这是CSS的核心特性,决定了哪些样式会被应用到元素上,以及如何处理样式冲突。 3. **第4章**:可能会涵盖CSS布局,包括流体布局、响应式设计(媒体查询的使用)、...

      CSS实战精粹源代码 pro css techniques

      《CSS实战精粹源代码 pro css techniques》是关于CSS高级技术的一份宝贵资源,它提供了丰富的实践案例和深入的技巧解析,旨在帮助开发者提升CSS技能,构建更高效、更美观且更易于维护的网页。这本书的源代码包含了...

      下载css文件中包含的图片

      通过这种方式,我们可以有效地下载CSS文件中包含的所有图片,这对于网站维护、本地化开发或离线应用构建都非常有用。记住,良好的编程实践,包括代码组织、异常处理和注释,将使代码更易于理解和维护。

      精通CSS 高级Web标准解决方案 第二版 pdf与 源代码

      书中提到了CSS性能优化的方法,如减少选择器复杂度、合并CSS文件、使用CSS Sprite等,这些都是提升网站加载速度和运行效率的重要手段。 八、源代码实践 随书附带的源代码是学习的宝贵资源,读者可以通过分析和修改...

    Global site tag (gtag.js) - Google Analytics