viewport.js + px2rem 自适应神器
发现神器一个☝️,在前段时间搞 webpack 模块化开发 + vue 组件时被安利了一个自适应方案 viewport.js + px2rem
。用完后才明白什么才是高级自适应!
首先科普一个知识点,这个知识点也就是该自适应方案的原理所在,同时也结束了我多年的困惑😖,感谢这位大大的总结!链接如下:
CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport
这个是 px 转换为 rem 单位的一个 loader 的文档
px2rem-loader
文章主要是理清这几个像素之间的关系,而 viewport.js + px2rem
就是根据这个原理来时间完美自适应,使用方法就是在 webpack 中安装依赖以及在 moudle 中配置起来。
首先开发环境安装 px2rem-loader
1 | $ npm i px2rem-loader -D |
配置 webpack config
1 | module.exports = { |
然后 在入口文件中添加上 viewport.js,
例如:
1 | entry: ['./app/js/viewport.js', './app/js/main.js'], |
使用时不要考虑太多,也没有什么技巧,就只要UI提供的一个2倍尺寸的设计文件就搞定(一般UI给的都是2倍图,如果你家UI恰好给你的还是 sketch 文件,你就感动哭吧,都省去ps手动量了),在 css 中测量直接使用2倍尺寸,单位还是 px(因为我们用的是 px2rem-loader px 转换为 rem 方案!)。再说一遍,在写页面的时候是不需要考虑设备尺寸的,UI界面量的是多少就写多少,记住是2倍尺寸px单位直接写,因为我们刚刚安装和调用的工具都帮我们做了。我们就傻瓜式写页面就ok了。
然后写完的页面渲染出来在各个尺寸设备中的效果简直一毛一样,感动哭😹,麻麻再也不用担心我用媒体查询写的自适应最后变龙生九子了!
最后贴上 viewport.js 的码
1 | (function (window, document) { |
以上更新自 2018-12-25
最后 🎄 merry Xmas! 🎄 更期待 元旦 😊的到来!
收集一些官网的移动端字体适配 css
,使用单位为 rem
。
- 阿里云注册页 (1rem : 100px)
1 | html { |
- 京东 (1rem : 20px)
1 | html { |
未完待续…