vue-cli3.0项目中使用vw——相比flexible更原生的移动端解决方案
以前喜欢用lib-flexible配合px2rem达到移动端适配的效果,最近了解了下vw 与 vh单位,以viewport为基准,1vw 与 1vh分别为window.innerWidth 与 window.innerHeight的百分之一。安装命令行输入:yarn add postcss-px-to-viewport 或 npm i postcss-px-to-viewport -s...
以前喜欢用lib-flexible配合px2rem达到移动端适配的效果,
最近了解了下vw
与 vh
单位,以viewport
为基准,1vw
与 1vh
分别为window.innerWidth
与 window.innerHeight
的百分之一。
安装
命令行输入:yarn add postcss-px-to-viewport
或 npm i postcss-px-to-viewport -save -dev
配置
package.json
中,在postcss
中添加代码:
"postcss": {
"plugins": {
"autoprefixer": {},
"postcss-px-to-viewport": {
"viewportWidth": 750,
"minPixelValue": 1
}
}
},
配置项:
“viewportWidth”: 750, // 设计稿的宽度
“unitPrecision”: 3, // px转成vw、vh后小数点保留的位数
“minPixelValue”: 1, // 不转化为vw的最小px值
使用场景
vw与vh会在pc与移动端均产生效果,而不像flexible
只会转换一定宽度(记得是750px)以下设备的px为rem,因此若设计稿为移动端而生,全权使用vw单位会使得页面在pc端出现字体过大等现象,需酌情处理,根据应用场景自行选择
vue-cli3.0引入lib-flexible/px2rem
兼容性
vw/vh 单位其实出现比较早了,只是以前支持性不太好,现在随着浏览器的发展,大部分(92%以上)的浏览器已经支持了vw/vh,关于其兼容性可以在线查询:
can i use?
更多推荐
所有评论(0)