大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说vue px转vw_vue-template-compiler,希望您对编程的造诣更进一步.
设计稿对于前端来说是非常重要的,但是设计稿的单位是px,而h5的适配单位现在用得最多的是rem,百度了下都是比较老旧的实现方法,要么自己去计算rem值,要么依靠编辑器安装插件转换,接着我便查了一些资料,然后在这里记录下
技术栈
- vue-cli 3.0: 使用脚手架工具创建项目
- postcss-pxtorem: 转换px为rem的插件
自动设置根节点html的font-size
因为rem单位是相对于根节点的字体大小的,所以通过设置根节点的字体大小可以动态的改变rem的大小, html的font-size===1rem,网上有很多关于rem的介绍,这里就不记录了
1、创建 rem.js 文件
# 基准大小
const baseSize = 32
# 设置 rem 函数
function setRem () {
# 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
const scale = document.documentElement.clientWidth / 750
# 设置页面根节点字体大小
document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}
# 初始化
setRem()
# 改变窗口大小时重新设置 rem
window.onresize = function () {
setRem()
}
1、在 main.js 中引入rem.js
# main.js
import './utils/rem'
引入文件后可查看下html是否添加了font-size属性或者font-size被动态的改变了,以此来确定是否引入成功, 其实到这里基本上完成了rem布局了, h5会动态的去自适应,不过这样子在实际开发中还是要去计算px等于多少rem,接下来我们使用 postcss-pxtorem 自动转换px为对应的rem值
使用 postcss-pxtorem 将px转换为对应的rem值
先安装依赖包 postcss-pxtorem
npm install postcss-pxtorem --save-dev
接下来配置 postcss-pxtorem
# vue.config.js
module.exports = {
lintOnSave: true,
css: {
loaderOptions: {
postcss: {
plugins: [
require('postcss-pxtorem')({
rootValue : 16, // 换算的基数
selectorBlackList : [], // 忽略转换正则匹配项
propList : ['*'],
}),
]
}
}
}
}
经过上面一通噼里啪啦的捣鼓后, 没出什么报错的话,便可用 px 作为单位开发
例如设计给出的设计图是 750 * 1136,那么可以直接在页面中写
body {
width: 750px;
height: 1136px;
}
# 将被转换为
body {
widht: 23.4375rem;
height: 35.5rem;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13683.html