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?

最近项目中需要使用到很多小图片,想用雪碧图,但是自己拼接图片,还要计算位置什么太麻烦了。之前想找在线的雪碧图合成网站,但是感觉都不怎么好用,然后发现了compass。

compass是一套用于自动创建和维护雪碧图的强大工具。

应该是官网:http://compass-style.org/

不错的教程:http://thesassway.com/beginner/getting-started-with-sass-and-compass

然后,开始尝试一下。

一、安装ruby和sass

在使用compass机器上请确保有ruby和sass。

1.ruby的下载安装。 https://www.ruby-lang.org/zh_cn/downloads/

2.安装sass

gem install sass

网上一开始找到的说这个命令就好了,但是我出现了一下错误。

然后找到了一个这样的解决办法:

gem sources -a http://rubygems.org/

并不成功,据说是因为ruby 的gem被和谐了,现在淘宝的ruby工程师架设了rubygems的国内镜像。

进行一下命令:

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

输出如下:

*** CURRENT SOURCES ***

https://ruby.taobao.org

成功安装。

我的版本:

二、安装compass

gem install compass

三、配置compass项目

compass init

然后你会发现它自动产生了一些文件

接着在根目录下新建文件夹images/share来放置你想合成的图片

注意,你的图片名称请不要出现空格!

四、开始使用

在文件夹sass下新建一个文件为share.scss,里面的内容为:

@charset "UTF-8";

@import "compass/utilities/sprites";  // 加载compass sprites模块
@import "share/*.png";                // 导入share目录下所有png图片

注意,如果你想在里面使用中文注释,请记得在第一行加上:@charset “UTF-8"; 要不然很容易就编码错误

执行命令:

compass watch

之后你只需要尽情地修改你的代码,每次更改它都会自动查看修改然后重新编译执行。

这是成功的提示,你会发现在image文件夹里有一张合成的png图,命名格式为share-XXX.PNG,然后在stylesheets文件夹下会新出现了一个名为share.css的文件。

你打开share.css文件会发现里面只有三行:

/* line 88, share/*.png */
.share-sprite {
  background-image: url(‘/images/share-sb24e8ccc59.png‘);
  background-repeat: no-repeat;
}

/*@include all-share-sprites;*/

这显然不大对劲,我想要每个图片的相对位置啊。

这时候,你需要在share.scss里多加上一行:

@charset "UTF-8";

@import "compass/utilities/sprites";  // 加载compass sprites模块
@import "share/*.png";                // 导入share目录下所有png图片
@include all-share-sprites;

include的那个东西的名字我们可以在开始生成的css的最后一行注释中看见,是基于引入图的文件名的。

这次出来的css就会是类似:

/* line 88, share/*.png */
.share-sprite, .share-arrow1, .share-arrow2, .share-arrow3, .share-arrow4, .share-arrow5, .share-arrow6 {
  background-image: url(‘/images/share-sb24e8ccc59.png‘);
  background-repeat: no-repeat;
}

/* line 84, ../../../Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/utilities/sprites/_base.scss */
.share-arrow1 {
  background-position: 0 0;
}

/* line 84, ../../../Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-core-1.0.3/stylesheets/compass/utilities/sprites/_base.scss */
.share-arrow2 {
  background-position: 0 -25px;
}

这样,需要用到哪个图标就非常简单了,满足了我最基本的需求~

另外,使用compass你还可以控制生成图片的图标排列方式,控制图标间的间距等。

中文教程参考:

【Sass中级】使用Sass和Compass制作雪碧图

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

时间: 2024-10-03 07:57:01

compass与css sprite(雪碧图)的相关文章

CSS Sprite 雪碧图制作

CSS Sprite 雪碧图,简单来说就是: 为了提高网页的性能,减少加载次数,将一些不会经常随网站内容变化的小图标,集中放在一张大图上,将该图应作为background-image 嵌入页面中,在需要相关图标时,根据background-position设置坐标值,达到目的. 一个例子,可以复制然后看一下效果: HTML代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo

CSS Sprite雪碧图应用

CSS Sprite CSS雪碧图 为了减少http请求数量,加速网页内容显示,很多网站的导航栏图标.登录框图片等,使用的并不是<image>标签,而是CSS Sprite雪碧图. 雪碧图使用场景: 1.静态图片,不随用户信息的变化而变化 2.小图片,图片容量比较小 3.加载数量比较大 4.一些大图不建议拼成雪碧图 (减少HTTP请求数,加速内容显示) 雪碧图实现原理:background-position 移动位置时,坐标都需要设置成负值 雪碧图生成方式 1.PS手动拼图 2.大项目通常使用

compass框架的sprite雪碧图的用法简要

---恢复内容开始--- **简介** CSS SPRITE 即 CSS雪碧,即是将诸多图片合成一张图片,然后使用CSS 的background和background-position属性渲染. 这样做的好处是:减少了网站的HTTP请求次数 **compass如何合并雪碧图** 1. 把需要合并的图片(1.png,2.png,3.png…)放在images文件下的新建一个文件夹test 2. 在SCSS文件中 用 @import 指向这些上述图片们,然后compass会自动将这些图片们合并成一个

css sprite 雪碧图

一.什么是雪碧图? 1.我们先来看一下淘宝上面用到的雪碧图实例: a.前端展示 b.css雪碧图为 2.概念 CSS sprite在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了. 3.什么时候用到雪碧图? a.静态图片,不随用户信息的辩护而变化 b.小图片,图片容量比较小 c.加载量比较大 4.工具介绍 刚刚下载了一个比较实用的雪碧图工具Css Spri

【HTML+CSS】CSS Sprite雪碧图

1. 雪碧图的使用场景 (1). 静态图片,不随用户信息的变化而变化 (2). 小图片,图片容量比较小 (3). 加载量比较大 一些大图不建议拼成雪碧图,例如淘宝网站的导航图片都是使用的雪碧图. 2. 使用雪碧图可以减少http请求数量,加速内容显示.每请求一次,就会和服务器链接一次,建立链接时需要额外时间的. 3. 实现原理 使用background-position属性: 需要使用雪碧图的时候,便宜x和y的值就可以了. 4. 实现方式: 一种方式是使用PS手动拼图: 另一种方式是使用spri

Css Sprite(雪碧图、精灵图)&lt;图像拼合技术&gt;

一.精灵图使用场景: 二.Css Sprite(优点) 减少图片的字节. 减少网页的http请求,从而大大的提高页面的性能. 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率. 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变.维护起来更加方便. 三.实现原理 css background-position 控制一个层可显示的区域范围大小,通过一个窗口进行背景图的滑动实例: 代码如下

css Sprite雪碧图

一原理: 其实原理很简单,就是使用background-position在一张大图中定位裁剪出我们需要的一个部分,然后用这个部分当作单个的图片使用. background-position(x,y). 简单描述:以图片的左上角为原点坐标,两个参数分别为x,y轴. 原文地址:https://www.cnblogs.com/qianxunpu/p/8249947.html

compass制作sprite雪碧图

1.安装compass.(需要先安装ruby) 命令行:gem install compass 2.新建一个compass 项目 命令行:compass create myproject 3.在myproject中新建一个images文件夹,将需要转换的图片放入images新建的share文件中 并在scss文件中写入: @import "compass/utilities/sprites"; @import "share/*.png"; @include all-

Sprite(雪碧图)的应用

雪碧图是根据CSS sprite音译过来的,是将很多很多的小图标放在一张图片上. 使用雪碧图的目的:有时为了美观,我们会使用一张图片来代替一些小图标,但是一个网页可能有很多的小图标,浏览器在显示页面的时候,就需要像服务器发送很多次访问请求,这样一来,一是造成资源浪费,二是会导致访问速度变慢. 把很多小图片(需要使用的小图标)放在一张图片上,按照一定的距离隔开,就解决了上述的两个问题. 我们来看看实现条件: 1.要有装图片的容器宽高 2.引用背景图的文件 3.精准定位改图(background-p

CSS Sprites ——雪碧图的使用方法

首先解释下CSS Sprites是什么:有称CSS精灵,有称CSS雪碧的,无论叫什么,他的作用就是把网页上很多小图标放到一张图片里面,然后通过CSS里面的background-position来控制每个图片的坐标,这样不但减少http请求,而且还降低了图片的大小,加快图片的加载速度,对前端开发的朋友来说是必备技能.更详细的解释请到[百度百科]围观. 雪碧图使用场景 1.静态图片,不随用户信息的变化而变化 2.小图片,图片容量比较小 3.加载量比较大 注:一些大图片.有动态效果图片无需使用雪碧图