美文网首页前端开发前端开发那些事
利用动态viewport+rem制作一张自适应的svg雪碧图ic

利用动态viewport+rem制作一张自适应的svg雪碧图ic

作者: 琦乐无穷 | 来源:发表于2016-01-07 19:07 被阅读2313次

先看下主流浏览器 、手机的尺寸和分辨率

主流浏览器和手机的尺寸

移动端雪碧图的痛点-不能自适应

移动端的icon大小不是不定的,如果用px固定住,在高分辨率手机中就会变得很小在低分辨率手机中就会变得很大。
所以手机都拿icon图标需要用百分比来或者用rem布局来调整icon的大小。

background-position百分比计算公式

x:(容器的宽度-图片的宽度)x (50%)
y:(容器的高度-图片的高度)x (30%)

比如:容器是width:600px;height:600px;而图片是width:200px;height:200px;

.icon{
    width: 600px;
    height: 200px;
    background:#FFF url(image) no-repeat fixed 50% 30%;
}
demosvg.jpg

我把一张图片平均分成11×11的正方形格子,之所以用11×11的正方形格子,
是因为background-position: 0% 0%;是第一个格子,是从零开始计数,所以0%-100%可以平均分成最多11个整数。
当然你可以分成,3×3的格子
0%代表第一个格子
50%代表中间的格子
100%代表最后一个格子

3x3.png

优点

矢量化,文件大小更小,图标更清晰,加载速度更快
支持渐变背景和支持多色彩icon
调用方便

缺点

由于没有svg雪碧图的自动化构建工具,所有的图片都只能人工维护,维护成本有些高。
兼容性不是很好,但是如果你是做移动端,可以不用考虑这个问题。因为大多移动端都支持svg图片。

svg优雅的降级.jpg
关于svg优雅的降级可以查看张鑫旭的这篇博客
http://www.zhangxinxu.com/wordpress/2013/09/svg-fallbacks/

这次分享就到这里,希望对大家有所帮助!

相关文章

  • 利用动态viewport+rem制作一张自适应的svg雪碧图ic

    先看下主流浏览器 、手机的尺寸和分辨率 主流浏览器和手机的尺寸 移动端雪碧图的痛点-不能自适应 移动端的icon大...

  • CSS常见技巧

    css Sprite(雪碧图丨精灵图)指什么?有什么作用 雪碧图就是把一些小图片利用软件合并到一张图片上,利用po...

  • 前端 利用steps设置不连续动画

    1.准备 制作横向的雪碧图,例如11张小图拼成一张雪碧图 2.设置动画,背景位置变化 @keyframes gif...

  • vue-cli3使用svg的最佳实践

    目录 iconfont的三种使用方式及其优缺点 封装svg组件 svg雪碧图 自动导入svg图标 封装svg组件 ...

  • 前端—雪碧图

    使用雪碧图的优点有以下几点: 雪碧图的制作与使用方法:

  • 雪碧图制作-mapbox本地化

    雪碧图制作-mapbox本地化 1. 雪碧图制作1.1. 安装1.1.1. nodejs安装1.1.2. spri...

  • css-雪碧图

    雪碧图 雪碧图是图片拼接技术,主要用来减少http请求。 制作 ps 自己制作 使用工具,在windows有CSS...

  • 雪碧图制作

    首先需要一张图片 HTML代码如下: css代码如下: 显示效果如下: 当鼠标移入时,图片就会相应的发生变化

  • 如何管理系统中的图标?

    1.雪碧图2.svg 多侧图标3.font 单侧图标 vue.config.js 中自定义vue-svg-load...

  • 不同图片类型以及区别

    一些名词:jpg(jpeg),png,gif,webp,bmp,apng,base64,svg,雪碧图,图标字体 ...

网友评论

  • 清华同方:1. svg雪碧图的自动化构建工具可以通过gulp-svg-symbols,svg-sprite-plugin 等工具生成
    2. 这种方式动态修改某个icon的宽高时不方便
    3. 可以通过 在SVG属性中, 利用(symbol)来定义一个图形模板对象, 并利用(use)将其实例化,实际操作更方便
  • 教学平台杨教授:虽然看不懂,但是一看就很厉害:+1:🏻支持一下

本文标题:利用动态viewport+rem制作一张自适应的svg雪碧图ic

本文链接:https://www.haomeiwen.com/subject/pryfkttx.html