CSS Sprites,如何来规划?

先看一张图:

  1. 一个页面一般会加载多少张css背景图?
  2. 一般会有哪几种类型的雪碧图?
  3. 雪碧图的尺寸该设置多大?如何排列?
  4. 雪碧图在站点中如何分布?

是否曾经烦恼过以上几点问题?带着上面几点问题,我们一起来探讨站点的雪碧图该如何规划比较合理。

首先让我们回忆一下,以前切页面时,会用到哪些类型的素材图?

我努力的想…努力的想啊…大概有:按钮、图标、其它固定尺寸背景图、横竖平铺背景图、横铺背景图、竖铺背景图、左右自适应背景图、上下自适应背景图、颜色鲜艳且尺寸较大的背景图。

好像有点乱,让我们分下类。

按雪碧图使用的作用域可分为:跨项目通用、全局、栏目级、页面级

按雪碧图实现方式可分为:固定尺寸雪碧图、横铺雪碧图、竖铺雪碧图(比较少用)、横竖平铺背景图(比较少用)

 那么,再把我们回想的素材图归下类:

按作用域:这些素材在不同站点都有可能出现在不同作用域中

按实现方式:

  • 固定尺寸雪碧图:按钮、图标、其它固定尺寸背景图、颜色鲜艳且尺寸较大的背景图
  • 横铺雪碧图:横铺背景图、左右自适应背景图(不使用九宫格的实现方式)
  • 竖铺雪碧图:竖铺背景图、上下自适应背景图(不使用九宫格的实现方式)
  • 横竖平铺背景图:这种图不能合成雪碧图,一般用于网页背景花纹,大部分站点比较少出现

最后,从站点的可实现性上考虑,我们该做多少张雪碧图?请看下面这张表:

从表中可以分析出,一个页面的背景图的请求数为:

看到最最多的情况,是不是震惊了?呵呵,其实很少会发生全部用的情况,根据页面实际情况组合使用,请求的个数不会很多,跟第一张图例的背景图请求数相比,规划清晰很多,请求数也减少很多了。

这些图该如何切、如何分布、命名,有没什么讲究?以下是我个人的观点和建议:

  1.  横铺图宽度使用20px, 使用1px宽度横铺会有渲染性能问题,竖铺同理。我就不详细说明了,网上搜索,有相关示例。
  2. 固定尺寸的雪碧图一般可设定为宽度是网页宽度的一半,高度随图片内容增长。因为切图前你可能不确定用多大尺寸,我的见解是,到切图后期 你可能不需要单独用一张repeat-x.png的图放左右自适应的背景图,多数情况我们会用2个标签采用滑动门的方式实现左右自适应的背景,而页面宽度 的一半即可实现最大宽度的左右自适应背景,那么这时你可以把左右自适应的背景放进这张雪碧图中了
  3. 拼合图片时固定尺寸的图与图之间相隔1像素,避免浏览器放大时,尺寸多计算1像素时可见到临近的图片
  4. 栏目级雪碧图的名称按栏目级目录名命名,页面级雪碧图的名称按页面名称命名,组件类和皮肤类雪碧图同理,其它的可按表中的名称命名,这样方便区分和后期管理
  5. 跨项目通用的组件或某个组件的图片内容较多、修改频繁,可以独立出一张组件图,按组件名命名,方便管理
  6. 如果站点的全局图标比较多,可以考虑将图标单独做一张雪碧图
  7. 建议图标使用一个新标签实现,而不是直接用有内容的那个标签设定图标背景,这样你需要给雪碧图图标与图标之间多留一些间距,另外遇到不同行高的时候,为了让图标背景垂直居中,还需要重新设定background-position,这种实现方式不利纳入全局样式
时间: 2024-07-28 21:11:33

CSS Sprites,如何来规划?的相关文章

网页提速之:利用css sprites减少图片请求

在高举"用户体验"为中心的网络时代,你是否因为打开网页速度太慢而关闭网页呢?相信很多人的答案都是肯定的.在高速的网络时代,千万不要挑战广东网民的耐心,不然只会导致网民远离你的网站而去. 网页提速有很多的方法,其中一条就是减少http请求.每一个网站都会用到图片,当一个网站有10张单独的图片,就意味着在浏览网站时会向服务器提出10次http请求来加载图片.下面为大家介绍减少图片请求的方法. css sprites:网站前端开发者大多称之为"css精灵",通俗的理解就是

CSS高级技巧:CSS Sprites

上一篇CSS教程文章:CSS高级技巧:圆角矩形 网页教学网 CSS Sprites, 利用CSS background-position 进行背景绝对定位, 减少HTTP请求, 加速网页显示, 解决图片载入闪动问题的技巧. 网页教学网 CSS Sprites最适合用来做的, 恩, 比如: 清单导航的CSS鼠标翻转效果 大量小图标集中的应用 (FckEditor) ...很多很多,多的想不出来了. 实现原理简单地说就是控制容器的大小, 然后利用background-repeat, backgrou

CSS Sprites+CSS3 Icon Font

      CSS Sprites在国内很多人叫CSS精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问 该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了.根据具体图标在大图上的位置,给背景定位.       CSS Sprites加速的关键,不是降低质量,而是减少个数.       做成Sprites的很大的原因是图片流量大,想象一下,如果将一些小图片做成字体模式进行显示,会不会很神奇呢?随着CSS3对字体样式的不断丰富,

CSS Sprites技术

核心提示:随着Web设计向着精致.巧妙的方向发展,设计师们开始考虑使用非Javascript的方 式制作鼠标滑过.悬停菜单的效果,这时CSS Sprite应运而生. CSS Sprites简介 通常被意译为"CSS图像拼合"或"CSS贴图定位".CSS Sprites并不是一门新技术,目前它已经在网页开发中发展得较为成熟,阿里巴巴各子公司的网页中到处都可发现css sprites 的影子.但CSS Sprites并不是什么金科玉律,但在很多情况下,它有着一定的优势,

CSS Sprites技术及图片优化

关于CSS Sprites技术的优化我们能做到多少,能减多少的请求数量.这并且不是单方面能做到的,一切取决于XHTML.CSS.CSS Sprites图片之间的配合.现时为止没有绝对优化的做法,这也是我在项目中经常衡量CSS Sprites图片与XHTML关系,如:<一张背景实现自适应九宫格>,以下总结了图片切割术与图象优化的一些方法. 图片优化 对于非动画的GIF更建议使用PNG8因为它同样能做到一样的效果,而且能为你节省10%-30%的文件体积. Photoshop相比起Fireworks

CSS Sprites如何使用重复背景日期

  之前在用到CSS Sprites的时候常常会遇到一个问题,如果遇到需要重复填充背景的情况该如何解决? 一般解决方法是:如果是横向,把图片设置为通栏的,便可以repeat-x.纵向的采取不重复方法,取一个"足够长的高度".但是这样也会带来一个问题,不利于控制背景图片的大小及尺寸,和图片的易维护性.后来还是老老实实的把需要平铺的图单独放出来. 不知道还有没有更理想的解决方法.

如何使用CSS sprites减少HTTP请求

CSS sprites是指把网页中很多小图片(很多图标文件)做成按规律排列的一张大图上,在显示的时候通过background-image.background-position显示图片特定部分达到和分散的一张张小图片一样的效果   sprites是鬼怪,小妖精,调皮鬼的意思,初听这个高端洋气的名字我被震慑住了,一步步掀开其面纱后发觉很简单的东西,作用却很大 神马是CSS 小妖精 CSS sprites是指把网页中很多小图片(很多图标文件)做成按规律排列的一张大图上,在显示的时候通过backgro

谈谈CSS Sprites技术及其优化

CSS Sprites 技术对于广大的前端工程师来说应该是一点也不陌生.这个被国内开发者昵称为CSS精灵 CSS雪碧的家伙到底解决了什么问题,我们又怎样合理使用这个技术呢?下面让我们详细的聊聊. 在大家还在拨号上网的"远古时期",由于网速的限制,页面开发者都喜欢把网页里面的图片字节数控制的非常小,往往在一个图片文件夹里散落着n多的小碎图.随着网络技术的发展,网速的提升,大家越来越重视页面的加载速度,页面效率问题,过去的那些小图便成为了前端开发者的眼中钉,因为每加载一张图片都会产生一次浏

网页提速:利用css sprites减少图片请求

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 在高举"用户体验"为中心的网络时代,你是否因为打开网页速度太慢而关闭网页呢?相信很多人的答案都是肯定的.在高速的网络时代,千万不要挑战广东网民的耐心,不然只会导致网民远离你的网站而去. 网页提速有很多的方法,其中一条就是减少http请求.每一个网站都会用到图片,当一个网站有10张单独的图片,就意味着在浏览网站时会向服务器提

css sprites方法减少图片请求来提高加载速度

我记得雅虎的提高网站加载速度的16条军规中有一条是尽可能的减少http请求数来提高网页加载速度.于是,诞生了使用css sprites方法减少图片请求. css sprites:网站前端开发者大多称之为"css精灵",通俗的理解就是:将多张小图片合成为一张大图片,减少http请求次数而达到网页提速.下面以淘宝网为例子,为大家讲解下css sprites是如何实现的.如我们要在网页上显示"今日淘宝活动"这个图片.   实现代码: <div style="