`
duoerbasilu
  • 浏览: 1479786 次
文章分类
社区版块
存档分类
最新评论

CSS图片分割 CSS Sprites 将多个背景集成到一个png图片上CSS定位

 
阅读更多

希望下面的讲解对您有帮助:

CSS Sprites(图片整合技术) 的目的就是通过整合图片,减少对服务器的请求数量,从而加快页面加载速度。如下图所示:

美国YAHOO在页面制作中所用到的图片整合技术,这样做虽然需要花一定的时间来有规则的合并这些ICON,栏目背景,图片按钮,以方便CSS调用,但是这样做绝对是合算的,而且是有必要的,YSlow也是极力推荐的。

实现方法:

首先将小图片整合到一张大的图片上,然后根据具体图标在大图上的位置,给背景定位。background-position:-8px -95px;

浅谈CSS Sprites技术以及图片优化 〔背景图整合〕

关于CSS Sprites技术的优化我们能做到多少,能减多少的请求数量。这并且不是单方面能做到的,一切取决于XHTML、CSS、CSS Sprites图片之间的配合。现时为止没有绝对优化的做法,这也是我在项目中经常衡量CSS Sprites图片与XHTML关系,如:《一张背景实现自适应九宫格》,以下总结了图片切割术与图象优化的一些方法。

图片优化

一、对于非动画的GIF更建议使用PNG8因为它同样能做到一样的效果,而且能为你节省10%-30%的文件体积。

二、Photoshop相比起Fireworks,导出同等质量的PNG图片,体积会稍大。而Fireworks虽然做了相应压缩优化,但没有达到最优秀的压缩。

三、我所知的设计软件,对于PNG图片的处理都没做到最优秀的压缩,图片体积还有一定的压缩空间。可以尝试使用下面介绍的”图像优化工具” 做无失真的压缩优化。

四、图片体积及尺寸方面,建议体积保持在100K以内(较为符合国情最佳请求SIZE),size为800px(最佳尺寸)。(从某权威人事中得知,具体无从考证)

CSS Sprites图片切割术

一、CSS Sprites图片顺序合图片由上至下、左至右添加。而background-position一般采用数字组合形式定位,这样能减少维护带来的不必要麻烦。

二、不建议CSS Sprites图片中保持一定的间距,因为文件size增大而增加文件体积。

三、CSS Sprites图片中把颜色较近或相同的组合在一起可以降低颜色数,因为少色数的图片文件体积会相对的小。

四、size相同的CSS Sprites图片中留有较大空隙,某程度上多数情况会增大了体积,所以CSS Sprites的图片不要有空隙。

五、在size相同的CSS Sprites图片中,垂直排列的图片会比水平排列的文件体积要大。

六、在CSS Sprites图片中,水平排列的图片会比垂直排列的文件体积要大。

七、图片对等合并:应用CSS Sprites图片时,适当地把对等相同的图像合并,以节省空间及减少体积。

八、区分开不需要合并的图像:如当前用户确定只显示一种状态或一个级别时,不必要把其他的级别或状态的图片合并。

九、黄金切割位:在CSS Sprites图片的最右或左边为最灵活动位置最适宜摆放文本前的icon,因此不会受到其它CSS Sprites图片干预,也不需要预留一定的行宽。

相关的图像优化工具,网上流传的优化工具繁多常见的如:

ImageMagick、PNGGauntlet、pngcrush、pngrewrite、Optipng、PNGOut等。

分享到:
评论

相关推荐

    css sprites技术将多个背景集成到一个png图片上css定位

    美国YAHOO在页面制作中所用到的图片整合技术,首先将小图片整合到一张大的图片上,然后根据具体图标在大图上的位置,给背景定位,感兴趣的朋友可以了解下具体的实现方法

    CSS-Satyr v2.0

    CSS 赛特斯(CSS Satyr)是一款 CSS Sprites 小工具,主要提供给从事前端工作的朋友使用。目前主要提供的功能为,将多张图片(格式:JPG/PNG/GIF/BMP/ICON)合并成一张图片,并提供相应的CSS调用代码。

    sprites:Node.js 中的自动 CSS 精灵

    sprites自动分析传入css文件列表中的background部分,根据一定规则匹配出所有的背景图将之合并,即自动雪碧图 解析语法树进行识别,保证准确性 区分不同的图片格式,包括png8和png24 区分高清图,即1倍和2倍 提供...

    CSS Sprites图片合并代码

    首先将小图片整合到一张大的图片上 然后根据具体图标在大图上的位置,给背景定位。 复制代码代码如下: .icons{background-position:-8px -95px;} 使用技巧: 小图片排列方面:颜色相近的图片放在一起,可以减少...

    png-sprite:将图像转换为Sprites + CSS的Gulp任务

    coveo-png-sprite是一个gulp模块,可从多个图像创建精灵表 var gulp = require ( 'gulp' ) ; var pngSprite = require ( 'coveo-png-sprite' ) ; gulp . task ( 'buildSprites' , function ( done ) { return ...

    CSS Sprites 技术分析

    原先只在CSS玩家之间作为一种制作方法流传,后来出来个14 Rules for Faster-Loading Web Sites, 技术人员之间竞相传阅,其中第一条规则Make Fewer HTTP Requests就提到CSS Sprites。于是这个小妖精就火了起来,甚至...

    CSS Sprites雪碧图技术基础学习指南

    相对于把每张小图标以.png格式文件的形式引用到页面上,使用雪碧图只需要引用一张图片,对内存和带宽更加友好。 实现 假设我们通过.toolbtn的类,为应用该类的各元素提供一张背景图片: CSS Code复制内容到剪贴板 ...

    PHP-CSS-Sprites-Generator:简单的 CSS 精灵生成器 PHP 类。 从图片文件夹生成精灵

    此脚本循环遍历文件夹中的所有图片并将其放置在适合的位置。依赖关系api使用示例 $ spriteGrid = new yl\gfx\ SpriteGrid ();$ spriteGrid -> importImagesFromFolder ( new DirectoryIterator ( 'images' ));$ ...

    postcss-sprites:从样式表生成精灵

    postcss精灵 插件,可从您的样式表生成Spritesheets。 /* Input */. comment { background : url (images/sprite/ico-comment.png) no-repeat 0 0 ; }. bubble { background : url (images/sprite/ico-bubble.png) ...

    css-spriter:纯RubyCSS Sprite生成器

    CSS Spriter,一个精灵生成器 [ PNG, PNG, PNG ] (°_°) [ PNG, PNG, PNG ] (° ) [ PNG, PNG, PNG ] )°) [ PNG, PNG, )°) [ PNG, )°) [ )°) \(°_°)/ -> SPRITES!!! 描述 它需要您的PNG,将其咀嚼并吐出...

    IE6与CSS样式兼容问题汇总

    1、PNG半透明图片的问题 虽然可以通过JS等方式解决,但依然存在载入速度等问题,所以,这个上能不要用还是尽量不要用。以达到网站最大优化。 2、IE6下的圆角 IE6不支持CSS3的圆角属性,比较好的解决方法就是用图片...

    CSS(html)背景图优化合并深入探讨

    图片本身的优化: 图像质量要求和图像文件大小决定你用什么格式的图片,用较小的图片文件呈现较好的图像质量。...多张图片的合并:CSS Sprites技术 单个图标之间必须保留空隙,空隙大小由容器大小及

    spriteCombo:css精灵组合

    将需要合并的图片放置到模块目录的img目录下的_sprites,如body-cacf/img/_sprites 图片的文件名会被映射为css中的类名,所以需要进行调整; 如 motion.png 在css中对应的类名为.sprite-motion; 生成的大图会被保存...

    IE6下的png格式图片解决方案

    本来只是一张png透明图片,在IE下是很好解决的,我也尝试了很多种,包括js法,滤镜css法等等,感觉总体来说都不是很完美,而且如果同时使用Sprites方法,就不是那么简单容易的事情了。

    generator-modern-frontend:使用您选择CSS预处理器Gulp,Bower,Autoprefixer和Browserify搭建现代的前端Web应用程序

    为了生成精灵,您需要在app/images/sprites/上为每个精灵类别创建一个目录。 它将生成其各自的样式表和子画面表文件,如下所示: app/images/sprites/general/*.png生成: css/sprites/general.styl images/...

    IE6下PNG完全完美透明效果【强烈推荐】

    一张png透明图片,在IE下是很好解决的,我也尝试了很多种,包括js法,滤镜css法等等,感觉总体来说都不是很完美,而且如果同时使用Sprites方法,就不是那么简单容易的事情了。最终发现了使用htc方法嵌到css文件中...

    emojione-png-sprites:一组EmojiOne PNG Spritesheets的大小,可针对各种Sprite大小进行调整。 仅导入所需的Spritesheet

    还有一个Sass mixin,可以生成给定尺寸CSS,并支持视网膜。 此仓库提供了EmojiOne旧版本2的表情符号。 这是因为版本2可供所有人免费使用,而版本3则需要购买昂贵的许可证进行商业使用。 请参阅许可证信息。 表中的...

    一个支持annotation的SSH整合示例项目

    卷 (USB)Project 的文件夹 PATH 列表 卷序列号码为 0006EE44 CCBE:F425 I:. │ .project │ pom.xml │ pom.xml~ │ text.txt │ ├─.settings │ org.maven.ide.eclipse.prefs ...│ │ org.eclipse.wst.common....

    sprite-loader:Webpack的精灵加载器模块

    精灵加载器 安装 npm install --save-dev sprites-loader 用法 file.css .... background-image : url ( "./... use : [ 'style-loader' , 'css-loader' , 'sprites-loader' , 'less-loader' ] } ] } } 选项 名称 类型

Global site tag (gtag.js) - Google Analytics