ispriter自动构建css-sprite

优化你的网站:

当一个网站中的资源(比如:js文件、css文件、图片等)很多时必然影响用户访问速度,这时候你就需要做网站性能优化,你可以选择把资源分开放在不同的服务器上,因为一个资源服务器最多可以同时下载2-3个资源,多个服务器就可以同时下载多个文件,但是这样就给公司带来资金问题。一般大家都会想到对资源文件进行压缩和合并,这个过程可以使用工具,也可以自动构建。今天我讲的就是自动构建压缩css文件,合并图片:

ispriter是一个非常不错的基于node的工具包,支持css合并压缩和图片合并:

特性:

智能提取 background 的 url 和 position 等信息

  智能设置被合并图片的宽高

  智能判断使用了 background-position(使用px为单位)定位的图片并重新定位

  支持已经合并了的精灵图再次合并和定位

  支持图片去重

  支持限制合并后图片的大小

  支持设置合并后的图片间距

  支持将所有图片合并为一张, 同时所有 CSS 文件合并为一个文件

  支持读取 @import 的样式表进行处理

  支持将所有合并了图片的 CSS 统一输出, 减少代码量

  支持对输出的 CSS 进行压缩(使用 clean-css)

  支持排除不需要合并的图片(在 url 后面添加 #unsprite 或者使用 config 文件来配置)

  跳过 background-position 是 right/center/bottom 的图片

  跳过显式的设置平铺方式为 repreat 的图片

  跳过设置了 background-size 的图片

配置文件:

config.json

{
    /**
     * 工作目录, 可以是相对路径或者绝对路径
     *
     * @optional
     * @default 运行 ispriter 命令时所在的目录
     * @example
     * "./": 当前运行目录, 默认值
     * "../": 当前目录的上一级
     * "/data": 根目录下的 data 目录
     * "D:\\sprite": D 盘下的 sprite 目录
     */
    "workspace": "./",

    "input": {

        /**
         * 原 cssRoot
         * 需要进行精灵图合并的 css 文件路径或文件列表, 单个时使用字符串, 多个时使用数组.
         * 路径可使用 ant 风格的路径写法
         *
         * @required
         * @example
         * "cssSource": "../css/";
         * "cssSource": ["../css/style.css", "../css2/*.css"]
         */
        "cssSource": ["./style/*.css"],

        /**
         * 排除不想合并的图片, 可使用通配符
         * 也可以直接在 css 文件中, 在不想合并的图片 url 后面添加 #unsprite, iSpriter 会排除该图片, 并把 #unsprite 删除
         *
         * @optional
         * @example
         * "ignoreImages": "icons/*"
         * "ignoreImages": ["icons/*", "loading.png"]
         */
        // "ignoreImages": ["*logo.png"],

        /**
         * 输出的精灵图的格式, 目前只支持输出 png 格式,
         * 如果是其他格式, 也是以PNG格式输出, 仅仅把后缀改为所指定后缀
         *
         * @optional
         * @default "png"
         */
        "format": "png"
    },
    "output": {

        /**
         * 原 cssRoot
         * 精灵图合并之后, css 文件的输出目录
         *
         * @optional
         * @default "./sprite/css/"
         */
        "cssDist": "./css/",

        /**
         * 原 imageRoot
         * 生成的精灵图相对于 cssDist 的路径, 最终会变成合并后的的图片路径写在 css 文件中
         *
         * @optional
         * @default "./img/"
         * @example
         * 如果指定 imageDist 为 "./images/sprite/", 则在输出的 css 中会显示为
         * background: url("./images/sprite/sprite_1.png");
         *
         */
        "imageDist": "./img/",

        /**
         * 原 maxSize
         * 单个精灵图的最大大小, 单位 KB,
         * 如果合并之后图片的大小超过 maxSingleSize, 则会对图片进行拆分
         *
         * @optional
         * @default 0
         * @example
         * 如指定 "maxSingleSize": 60, 而生成的精灵图(sprite_all.png)的容量为 80KB,
         * 则会把精灵图拆分为 sprite_0.png 和 sprite_1.png 两张
         *
         */
        "maxSingleSize": 0,

        /**
         * 合成之后, 图片间的空隙, 单位 px
         *
         * @optional
         * @default 0
         */
        "margin": 3,

        /**
         * 配置生成的精灵图的前缀
         *
         * @optional
         * @default "sprite_"
         */
        "prefix": "sprite_",

        /**
         * 精灵图的输出格式
         *
         * @optional
         * @default "png"
         */
        "format": "png",

        /**
         * 配置是否要将所有精灵图合并成为一张, 当有很多 css 文件输入的时候可以使用.
         * 为 true 时将所有图片合并为一张, 同时所有 css 文件合并为一个文件.
         * 注意: 此时 maxSingleSize 仍然生效, 超过限制时也会进行图片拆分
         *
         * @optional
         * @default false
         */
        "combine": false,

        /**
         * 配置是否把合并了图片的样式整合成一条规则, 统一设置 background-image, 例如:
         * .cls1, .cls2{
         *     background-image: url(xxx);
         * }
         *
         * @optional
         * @default true
         */
        "combineCSSRule": true,

        /**
         * 配置是否压缩 css 文件, 将使用 clean-css 进行压缩, 其值如下:
         * false: 不进行压缩;
         * true: 用 clean-css 的默认配置进行压缩;
         * Object{"keepBreaks": true, ... }: 用指定的配置进行压缩.
         *
         * @optional
         * @default false
         */
        "compress": false
    }
}

操作步骤:

第一步,安装node,官网:http://nodejs.org/

第二步,安装ispriter包,npm install ispriter -g

第三步,当前目录运行 ispriter -c config.json

这时会多出一个文件,里面有css文件和合并之后的image文件。

详细内容:https://github.com/iazrael/ispriter

时间: 2024-10-29 16:32:35

ispriter自动构建css-sprite的相关文章

使用compass自动拼css sprite

使用compass自动拼css sprite css sprite (css 雪碧)又叫css精灵,是一种图片拼合技术.多用在图标上,把几个图标拼成一个图片,页面加载的时候只需要load拼好的图片,然后使用background-position配合width.height来显示不同的图标.这样做可以减少页面请求数.但是,想想把一个个图标从psd上扣下来,合到一个图上,然后还要慢慢算background-position,这也真是醉了,而且后期如果改了图标,又要重新拼一次,拼完再算一次backgr

css sprite的实现

css sprite 为什么使用css sprite? 网页上的很多静态小图片在加载时需要大量http请求,增加了响应时间.(哈哈,雅虎34条优化法则的第一条啊) css的background-position:x,y; 利用分层实现 1.设置块状元素大小 2.改变背景的位置 3.实现(很多小图组成的大图)对应位置小图的出现 自动生成css sprite的工具:cssgaga

使用compass自动合并css雪碧图(css sprite)(转载)

css雪碧图又叫css精灵或css sprite,是一种背景图片的拼合技术.使用css雪碧图,能够减少页面的请求数.降低图片占用的字节,以此来达到提升页面访问速度的目的.但是它也有令人诟病的地方,就是拼图和后期维护的成本比较大.也正是因为这一点,导致很多开发者懒于使用css雪碧图. 对于这种耗时.枯燥.重复性的工作,最好的解决方法还是交给工具去处理.本文就介绍下怎样使用compass来自动合并css雪碧图. 安装compass 首先请确认电脑已经安装ruby及sass环境,ruby及sass的安

compass与css sprite(雪碧图)

什么是css sprite? css sprite,中文叫雪碧图,也有人喊CSS精灵,就是一种背景拼合的技术,然后通过background-position来显示雪碧图中需要显示的图像. MDN相关链接:https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/CSS_Image_Sprites 优点:1.减少页面请求数 2.降低图片占用字节 缺点:1.拼图麻烦 2.后期维护麻烦 为什么使用compass? 最近项目中需要使用到很多小图片,想用

CSS Sprite笔记

1. 什么是CSS Sprite 将一些碎小的图片拼接为一张大点的图片来使用,目的是为了减少浏览器的http请求次数以提高网页的加载速度.每次请求图片都需要跟服务器建立一次连接,并且浏览器的最大并发请求数是有限制的.使用雪碧图并不能减少传送的数据的总量,但可以通过节省掉一部分建立.关闭连接的时间来加快网页的加载速度. 2. 如何使用 2.1 怎么得到雪碧图? ※ 直接手动拼接,只要可以将需要用到的小图片拼在一张图片上即可,当然,拼接应该尽量遵循的原则: 尽量让这张图片以后可维护: 在保证可维护性

使用Jenkins进行android项目的自动构建(3)

建立Jenkins项目 1. "新增作业"->填写作业名称->选择"建置 Maven 2 或 3 專案"->OK.新增成功后会进入"組態設定",暂时先保留默认值,稍后再进行设定. 2. 按一下"马上建置",会显示"已排入建置",然后在"建置歷程"会见到#1的链接,点入该链接并选择"終端機輸出",这时会见到一个失败的构建记录.当然会失败,因为我们还未为

自动构建工具Gulp

摘要:  gulp与grunt一样,都是自动构建工具.和grunt相比它更突出一个流的概念,任务是一个接一个执行的.今天就分享如何用gulp做自动化. 安装: gulp也是基于node环境,所以安装gulp之前你需要安装node.js.  npm install -g gulp 只要在命令窗口中执行上面一行命令就完成安装,这样安装的是全局安装.在项目中一般是通过package.json中的devDependencies属性来安装.如下: { "name": "",

Maven学习笔记(三)——Maven仓库(Repositories)、基础命令(二)&自动构建项目

前言 上篇blog介绍了maven最基础的一些核心概念,包括maven项目约定的目录结构.maven核心配置文件--pom.xml文件的解析以及3个基本的maven命令(compile.test.package),本篇blog将继续介绍剩余的maven命令,还会涉及到maven最重要的概念之一--Maven仓库,最后会学习如何通过maven自动构建java项目/javaweb项目以及自动构建可供选择的项目骨架. Maven仓库(Repositories) 本来打算继续学习剩余的maven命令,但

使用雪碧图Css Sprite精灵 | 加速网页响应速度

什么是CSS Sprite精灵? 是用于前端的一种图片应用技术,通常情况,我们的开发的网页或许有很多张图片,假如在一个页面上有50多张小图片,这意味着浏览器要逐个下载50张图片.Css Sprite它允许你将一个页面涉及到的所有零星图片都包含到一张图中,这样一来,当访问页面时,就只需要下载1张图片了,这显然大大减低了服务器请求压力. 这个技术加速网页响应速度,加速的关键,不是降低质量,而是减少个数.传统切图讲究精细,图片规格越小越好,重量越小越好,其实规格大小无所谓,计算机统一都按byte计算.