• 萧过无痕的栖息地

  • 网吧企业电脑维护,网站建设维护,家庭电工维护
    • 网站首页
    • 站内搜索
    • Team
    • 留言板
  • 【转载】解密CSS Sprites:技巧、工具和教程

    [设计资料]
    post by 萧过无痕 / 2009-5-3 23:15 Sunday

    CSS Sprites并没有一个确定的中文翻译,通常被意译为“CSS图像拼合”或“CSS贴图定位”。CSS Sprites并不是一门新技术,目前它已经在网页开发中发展得较为成熟。CSS Sprites并不是什么金科玉律,但在很多情况下,它有着一定的优势,最重要的是它可以减轻服务器的负载,提高网页加载速度。

    本文系统的介绍了CSS Sprites的概念、用途和用法,相信本文会解决你在使用CSS Sprites中遇到的大部分问题。

    什么是CSS Sprites?

    “Sprite”(精灵)这个词在计算机图形学中有它独特的定义,由于游戏、视频等画质越来越高,必须有一种技术可以智能的处理材质和贴图,并且要 同时保持画面流畅。“Sprite”就是这样一种技术,它将许多图片组合到一个网格上,然后通过程序将每个网格的内容定位到画面上。

    Sprite被定位到一副静态图片上,并且通过简单的程序或硬件即可正确定位到画面上,一幅幅图片就像是被“变”出来的,他们并没有单独占用内存,所以被取名为“Sprite精灵”。

     

    上图是口袋妖怪的组合图片,可以。

    时间进行到2000年,Web设计向着精致、巧妙的方向发展。设计师们开始考虑使用非Javascript的方 式制作鼠标滑过、悬停菜单的效果,这时CSS Sprite应运而生,它基于同上文提到的游戏Sprite同样的原理,并且使用CSS更容易控制,很快的流行开来。

    2004年,Dave Shea 提出了一种使用CSS控制组合图片的 ,将许过小的图片组合在一起,使用css定义背景属性,来控制图片的显示位置和方式。

    当页面加载时,不是加载每个但以图片,而是一次加载整个组合图片。这是一个了不起的改进,它大大减少了HTTP请求的次数,减轻服务器压力,同时缩短了悬停加载图片所需要的时间延迟,使效果更流畅,不会停顿。

    CSS Sprites用在哪里?

    CSS Sprites可以用在很多场合,大字那个网站可以将许多单独的图片,以有机的方式组合起来,从而使其便于维护和更新。图片之间通常会留出较大的空白,使 得图片不会影响网页的内容。但同时CSS Sprite大多使用于较固定的像素定位中,它的弹性较差,收到定位等因素的制约。所以,你需要在可维护性vs降低负载之间权衡利弊,选择最适合你的项目 的方式。

    下面是一些CSS Sprites的使用范例:

    这个网站将一些按钮、图标以及LOGO做成了CSS Sprites:

    Screenshot


    亚马逊使用的大幅、整齐巧妙的CSS Sprites:


    苹果网站使用CSS Sprites来制作导航菜单的鼠标悬停效果:


    YouTube使用了一个2008像素高的CSS Sprites:


    CNN使用了非常简单谨慎的方案:


    Digg的方案比较复杂:


    Yahoo将他们漂亮的图标等距离排布起来:


    Google使用了极其简化的方案:


    一个丰富多彩的CSS Sprites方案:


    一个很大很酷的CSS Sprites方案

    CSS Sprites常用来合并频繁使用的图形元素,如导航、LOGO、分割线、RSS图标、按钮等。通常它们不会作为网页内容出现,因为涉及内容的图片并不是每个页面都一样。

    关于CSS Sprites的文章
     

    中文版 http://www.liquidroc.name/post/my_view_on_css_sprites.html

    最权威的CSS Sprites介绍文章之一


    一片图文并茂的介绍文章


    介绍Yahoo、AOL等网站使用CSS Sprites降低服务器压力的案例。


    又一片介绍文章


    Dave Shea的思考:是不是真的有必要建立复杂的大型CSS Sprites?答案是不!不要搞得太复杂,找到一个折中的方案才是正道。

    一篇教程,其源文件可下载学习

    一个快速翻转效果的例子

    另一个例子:使用CSS Sprites实现背景圆角

    一篇教程

    非常详细的教程,介绍了CSS Sprites的原理和应用方法。

    一个比较特别的应用

    怎样制作简单的悬停菜单效果

    还是悬停效果

    一个非常基本的教程

    CSS Sprites视频教程


    David Perel解释了CSS Sprites的基本概念,并演示了如何在网页中使用它,长度:10分钟


    继续上面的教程,展示了如何制作滑动按钮


    Andres Fernandez 展示了 CSS sprites如何加快加载时间和减少请求次数


    Chris Coyier 展示了一个 CSS sprites的范例,他将8幅图片组合在了一起,并且使用jQuery制作了一个小程序。


    对于复杂的网站,减少图片请求数量可以减轻服务器负担,这是许多站长所希望看到的。


    另一个关于导航菜单的教程


    介绍背景图片定位的方法

     

    利用CSS Sprites制作图像映射(image maps)

    使用CSS Sprites,你可以对一个对象的一小部分加载翻转效果,使用负值的背景图片位置( background-position ),你可以创建基于CSS的图像映射,下面的文章讲述了这一技术:


    一个基于CSS的图像映射的简单例子。你可以同对比一下优劣。


    另一个横向定位的例子


    一个更高级的技术。

    CSS Sprites技术


    Dave Shea 使用jQuery扩展了经典的CSS Sprites, 他的技术可以让不同的链接之间使用组合图片,即使用户禁用了Javascript。


    Joel Sutherland 制作的jQuery插件,整理了Dave Shea的功能,并简化了初始化设置。


    什么情况下使用CSS Sprites


    这是一个可以导入Photoshop的动作设置,可以让你快速制作翻转按钮的背景图片。


    Jennifer Semtner 扩展了经典CSS Sprites技术,并讲述应该在什么时候使用它。


    滑动门技术 “.”


    如何处理CSS Sprites对网页内容的影响


    Alex Walker 结合CSS Sprites和jQuery,实现了“打开页面”的效果


    Julien Lecomte 讲述IE6下的透明hack问题

    CSS Sprite 制作工具
     


    DURIS (Data URI [CSS] Sprites) 是一个管理网页图片的新工具,它可以最大限度的帮助你减少背景图片的数量,减少请求数。


    一个生成CSS Sprites的简单工具


    同上


    制作CSS sprites 的Drupal插件


    这个工具允许你上传多张图片生成CSS Sprites和CSS代码


    它具有忽略重复图像,调整图像精度,确定横向和纵向偏移,指定背景色和透明度,指定CSS前缀等众多功能。


    基于java的桌面程序

    你可以继续以你自己的方式编写CSS和使用图像,有一个工具可以自动为你设置CSS Sprites, ,它是开源的,具体可以看: .

     

    附:CSS属性background-position(图像背景位置)该如何设置

    background-position(图像背景位置)这个属性是CSS中非常重要的属性。

    根据CSS规范,background-position属性包含了两个(可选的)变量:水平位置(horizontal)和垂直位置(vertical),例如:

    1. .introduction{
    2. background-image:url(bg.gif);
    3. background-position:[horizontalposition][verticalposition];
    4. }
    .introduction { background-image: url(bg.gif); background-position: [horizontal position] [vertical position]; }

    使用这个属性,你可以定义块级元素的背景图像位置,可以使用%百分比或px像素为单位来定义图像开始的位置,也可以使用关键字:top left, top center, top right, center left, center center, center right, bottom left, bottom center, bottom right.

    在“ background-position: x% y%; ”这样一个语句中,x%指水平偏移,y%指垂直偏移,左上角是:0%,0%,右下角是:100%,100%,默认的是50%。

    例如,你可以这样定义:

    1. ulli{
    2. background-image:url(bg.gif);
    3. background-position:19px85px;
    4. },
    ul li { background-image: url(bg.gif); background-position: 19px 85px; },

    这样背景图片就被定位到了距离左侧19像素,距离上边85像素。

    关于这个属性,可以在这里找到更详细的资料: 。

    英文原文:
    中文翻译:

    标签: 服务器 网页 CSS Sprites Sprite 静态图片 CSS图像拼合 CSS贴图定位 Sprite精灵 css 加载 网页开发 负载 速度

    相关日志:

    网页开发的6种在线调试环境

    FTP上传怎么出现数据socket错误、连接超时传送失败

    什么是SHTML?与HTML的区别

    财富评选2010年全球增速最快100大企业

    红帽推出新一代企业操作系统Linux 6

    微软拟向互联网开发商提供免费IIS 服务器

    Nginx 0.8.51 稳定版发布

    最近流行一种针对服务器的新病毒,极易传染,租用独立服务器的朋友进来!

    IT经理世界:B2C的物流竞争

    哦喔,必应终于能用了~

    « 【转载】为什么使用开源软件??? | 【转载】Setster:在线预约日历»

    评论:

    淘宝模板定制
    2011-09-17 16:01
    非常棒,我拜读了!
    回复
    取消回复

    发表评论:

  • blogger

      blogger
    • 萧过无痕
    • 想换个职业真的是好难
  • 最近关注

    • 最近关注着的娱乐节目有:
      空白,最近属于发呆期……
  • 分类

    • 我的生活(481) 订阅该分类
    • 网吧资料(40) 订阅该分类
    • 建站资源(259) 订阅该分类
    • 服务器(32) 订阅该分类
    • 电脑应用(197) 订阅该分类
    • 设计资料(21) 订阅该分类
    • 用户体验(73) 订阅该分类
    • 智能手机(56) 订阅该分类
    • 网摘(2179) 订阅该分类
    • 娱乐分享(199) 订阅该分类
  • 随机日志

    • emlog4.0.0发布
    • 运营商应警惕终端恐慌症
    • 现在这天,真难掌握
    • Phpwind 7.32开启会员宣传链接
    • 剧场版高达00,终于出了!!!
    • 【转载】usp10.dll 病毒文件删除方法 Trojan.PSW.Win32.GameOL.vkd
    • 团购微博引领2010中国十大热门网络应用
    • 美国大学生的电子产品依赖
    • 腾讯移动QQ永久免费迎战飞信
    • 三星手机:榜眼之秘
    • 关于网站域名可以访问,而加上index.html或者是index.htm不能访问提示打不开的解决方案
    • 根据排查,找到了为什么本博客最底部不显示博客程序版权的问题了……
    • “谭木匠”的成功秘密
    • 手机号恢复使用~感谢冯MM借我手机用^^
    • 被高估的四种安全技术 杀毒软件名列榜首
    • 电子书未能大行其道的5大原因
    • 谈谈网站被hao123收录的意义和作用
    • 3个自我控制的小方法:洗手、握拳、心情好
    • Javascript匿名函数解读
    • 微软CEO鲍尔默:中国没有软件市场可言
  • 言论

    • ⒈决不能因为一件伤心的失望的事,就从此放弃生活中一切有价值的东西;
      ⒉要像一颗青树,大风将树根吹折,然而巨大的树干,却永远树立;
      ⒊想匆匆忙忙地完成一件事以期达到加快速度的目的,结果总是要失败的;
      ⒋如果你是对的,就要试着温和地,技巧地让对方同意你;如果你错了,就要迅速而热诚地承认。这要比为自己争辩有效和有趣的多;
      ⒌"思考"应当走到众人前面去,"冤枉"不妨留在后面;
      ⒍如果试图改变一些东西,首先应该接受很多东西;
      ⒎以后更新^_^
  • 链接

    • 萧过无痕的栖息地
    • 如何与本站交换连接?
    • 贵站友情连接消失原因
    • 不换产品AD网站友情
    • 穆亦风
    • 水水
订阅Rss
Code by emlog|关于版权的那点事|全站文章非注明原创外都为互联网转载,如有版权问题请留言,立即删除|