codecamp

CSS 雪碧图的使用

什么是雪碧图?

雪碧图是根据 CSS sprite 音译过来的,就是将很多很多的小图标放在一张图片上,就称之为雪碧图。

使用雪碧图的目的:有时为了美观,我们会使用一张图片来代替一些小图标,但是一个网页可能有很多很多的小图标,浏览器在显示页面的时候,就需要像服务器发送很多次访问请求,这样一来,一是造成资源浪费,二是会导致访问速度变慢。这时候,把很多小图片(需要使用的小图标)放在一张图片上,按照一定的距离隔开,就解决了上述的两个问题。

显示雪碧图的条件:

1)需要一个设置好宽和高的容器

2)需要设置 background-position 的值(默认为(0,0),也就是图片的左上角),即移动图片到自己想要的图标位置。

调试方法:可以用浏览器自带的调试工具进行调试(如 chrome 浏览器按 f12 即可进行调试,慢慢移动 background-position 的值来达到理想的效果)

使用介绍    

当一张图片 icon-twitter.png 需要合并的时候,请放入 slice 目录中,然后在 style-index.css 中这么写:

.icon-word {
    background-image: url('../slice/icon-twitter.png');
}

合并后:

.icon-word {
    background-image: url('../sprite/style-index.png');
    background-position: 20px 20px;
}

如果图片支持 @2x,可以命名为 icon-twitter@2x.png 一起放入 slice 目录中,合并后会加入 media query:

@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min--moz-device-pixel-ratio: 2),
       only screen and (min-resolution: 240dpi) {

    .icon-word{
        background-image:url("../sprite/style-index@2x.png");
        background-position: -4px -4px;
        background-size:132px;
    }

}

依此类推,如果为 3 倍图,则命名为:icon-twitter@3x.png 即可。目前只支持到 3 倍图。

注意点

  1. 图片一定是放在 slice 目录下才会被合并
  2. 使用的时候一定是 background-image 属性才会被识别匹配
  3. @2x 图保持偶数高宽。(懒癌犯了,病治好后让插件自动给奇数 @2x 图加透明白边也是可以的)


Autoprefixer 的使用
JS 合并压缩相关
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }