自适应页面中如何使用雪碧图

  自适应页面你肯定听说过,雪碧图想必你也听说过,不过在自适应页面中使用雪碧图应用的场景却不多,因为很多场景里自适应页面(移动端页面)的小图标啥的基本都做成字体图标了,操作起来也比较方便,不过有时候合成字体图标的时候也比较麻烦,AI制作复杂svg矢量图标很麻烦,今天说的这个应用场景用的就是这个情况;

  首先你要知道什么是雪碧图,不知道的先科普之,百毒传送门

  上面说到有的场景添加字体图标很麻烦,如果不理解看下图就明白了:

  

  没错,就是这个国旗,有几十个国家的,这要搞成svg矢量图那要累死了(如果有大神有快速牛逼的解决方案请告诉我),网上下载的也不尽全面,当然还有种方案是做成单个图片,src引用,不过这个图片有点多,对于移动端http回话太多了,参考前端优化的原则不想用这种方法,所以想到pc上经常用的雪碧图的处理方式,也就是background:url(..flag.png) no-repeat,加上各个国旗的position值就可以了,问题是当页面处于不同尺寸下时,雪碧图一直是初始大小,无法随着自适应尺寸变化,导致该出现国旗的区域在每个尺寸下显示的不同,问题的核心就是控制雪碧图显示尺寸随着自适应尺寸变化;

  页面部分html如下:

  其中.currency定义雪碧图,定义宽和高,gdp等部分是各个国旗的positiion,具体css如下:

.currency_icon {
    background: url(../images/nationalflag.png) no-repeat;
    background-size: 2.4rem 42.9rem;
    width: 2.4rem;
    height: 1.5rem;
    margin-right: .5rem
}
.gbp {
    background-position: 0 -1.8rem
}

  注意这其中有个css3中的 background-size的定义,这是个很少用到的css3属性,顾名思义可以定义所引用的背景的size,并且是使用rem定义值,与自适应页面是一套标准在里面(ps:这些页面自适应是用rem值写的),所以这里雪碧图就和自适应页面相关联,解决了上述自适应雪碧图尺寸的问题。

  background-size语法:background-size: length|percentage|cover|contain;

  

  

  本篇文章对应实例页面,请戳这里注意如果打开是乱页面(ie 360浏览器请自动关掉),这里使用的是htts协议,服务器貌似在国外,证书安装的问题,要右键查看源查看引用的css,这个时候会提示是非安全访问,无视就行了(这个套路很像12306有木有,每次登陆买票都提示安全问题...)

  这里稍稍吐槽下博客园,感觉好久功能性的东西不升级了,系统页面也跟不上时代(貌似博客园的工作人员只有十几个人...),一些东西完全可以放出来的,比如test demo页面,跳转到本站测试页面看运行效果,既华丽又不跳出...好吧,谁让我当初省了空间自建站的事情那。

时间: 2024-08-02 11:03:27

自适应页面中如何使用雪碧图的相关文章

前端工程师技能之photoshop巧用系列第五篇——雪碧图

显示目录 目录 [1]定义 [2]应用场景 [3]合并[4]实现[5]维护 前面的话 前面已经介绍过,描述性图片最终要合并为雪碧图.本文是photoshop巧用系列第五篇--雪碧图 定义 css雪碧图(sprite)是一种网页图片应用处理方式,它允许将一个页面涉及到的所有零星图片都包含到一张大图中.使用雪碧图的处理方式可以实现两个优点: [1]减少http请求次数 [2]减少图片大小,提升网页加载速度 (多张图片加载速度小于拼合成的图片的加载速度) 凡事都不完美,实现优点的同时也带来了缺点,即提

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

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

CSS3技术-雪碧图自适应缩放

花了一个礼拜完成了慕课网定制的七夕主题效果,其中有一个没实现好的功能,就是雪碧图的自适应缩放 ps: 以下实现都是基于移动端的处理 原图如下: 人物是采用的是雪碧图,通过坐标绝对数据取值 问题很明显,在缩放的屏幕上人物还是按照原尺寸大小显示 后来临时留了一节预备的方案:CSS3的scale处理直接可以让元素缩放 通过一个缩放的算放控制scale从而让雪碧图的元素可以缩放,目测还是不错. 但是这会带一系列的计算问题,因为通过sacle缩放后的元素,在浏览器布局中还是按照原尺寸计算的,所以这样的方案

CSS中的背景、雪碧图、超链接的伪类样式

一.背景 1.背景颜色 background-color: red; 2.背景图片 background-image: url("../../img/l1.png"); 3.图片填充 background-repeat: no-repeat;(有这三个常用的属性值: no-repeat.repeat-x.repeat-y) 4.背景图片大小 background-size:100% 100%: cover(覆盖):(先让图片水平填满容器)图片等比例缩放,直到最小部分填满容器有可能会出现

gulp-css-spriter 将css代码中的切片图片合并成雪碧图

NPM地址:https://www.npmjs.com/package/gulp-css-spriter/ 配置gulpfile.js: var gulp = require('gulp'), minifyCSS = require('gulp-minify-css'),    spriter = require('gulp-css-spriter'); gulp.task('css', function() { var timestamp = +new Date();    //需要自动合并雪

使用grunt对css中的background图片自动生成雪碧图

公司研发的系统为B/S架构,用户使用浏览器访问系统时,使用浏览器自带工具查看,对图片的请求数极多,多为小图片. 今天想对这个现状进行改善,网上查到一种雪碧图的方案,其实就是使用工具将数量很多的小图片拼成一张大图片,然后css里都引用这张大图片,并指定显示该图片的某一个区域,但这个方案需要手工作很多处理. 于是就想到能不能用目前比较成熟的grunt对前端样式文件自动进行处理,自动生成雪碧图,自动修改样式文件.一搜索果然找到了方案,下面为Gruntfile.js文件的片断: module.expor

雪碧图实现登陆页面

这是素材: 这是代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatib

CSS Spritec下载,精灵图,雪碧图,初探之原理、使用

CSS Spritec下载,精灵图,雪碧图,初探之原理.使用 关于CSS Sprite CSSSprites在国内很多人叫css精灵雪碧图,是一种网页图片应用处理方式.它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来了.对于当前网络流行的速度而言,不高于200KB的单张图片的所需载入时间基本是差不多的,所以无需顾忌这个问题. 加速的关键,不是降低重量,而是减少个数.传统切图讲究精细,图片规格越小越好,重量越小越

响应式下的雪碧图解决方案

一.概述 在传统的居中布局时,我们常用background-position这个属性来进行雪碧图的定位,在减少数据量的同时,保证准确定位.在移动端使用越来越重的现在,以往的传统定位,已经无法达到目的,那么是否有合适的解决方案呢?答案是有的,让我们先来了解background的两个属性: background-position:背景图片相对容器原点的起始位置.详解可以查看另一篇博客:background-position 详解. background-size: 规定背景图的尺寸: 语法:back