欢迎来到[自学php网] ①群 AG亚游集团

AG亚游集团 > 网站前端 > vue教程 >

Vue项目自动转换 px 为 rem的实现方法

来源:未知 ?? 时间:2018-11-04 14:49?作者:小飞侠

[导读] 前端开发中还原设计图的重要性毋庸置疑,目前来说应用最多的应该也还是使用rem。然而很多人依然还是处于刀耕火种的时代,要么自己去计算rem值,要么依靠编辑器安装插件转换。...

前端开发中还原设计图的重要性毋庸置疑,目前来说应用最多的应该也还是使用rem。然而很多人依然还是处于刀耕火种的时代,要么自己去计算rem值,要么依靠编辑器安装插件转换。

而本文的目标就是通过一系列的配置后,在开发中可以直接使用设计图的尺寸开发,项目为我们自动编译,转换成rem。

技术栈

vue-cli:使用脚手架工具创建项目。

postcss-pxtorem:转换px为rem的插件。

自动设置根节点html的font-size

因为rem单位是相对于根节点的字体大小的,所以通过设置根节点的字体大小可以动态的改变rem的大小。

原理网上有很多文章分享,这里不具体解释。

1、创建rem.js文件

很多人写这种小工具文件会习惯性的加上闭包,这个其实是没有必要的。ES6中每个文件都是单独的一个模块。

/ 基准大小
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()
}

2、在main.js中引入rem.js

import './utils/rem'

引入文件后,查看页面的html节点,是否有被自动添加 font-size。

注意:完成到这一步,也就是实现了rem布局,实际开发的时候,还是需要我们去计算对应的rem值去开发。

下一步我们就配置一下webpack,自动转换px为对应的rem值。

配置 postcss-pxtorem 自动转换px为rem

1、安装 postcss-pxtorem

$ npm install postcss-pxtorem -D

2、修改 /build/utils.js 文件

找到 postcssLoader 的代码块

const postcssLoader = {
 loader: 'postcss-loader',
 options: {
  sourceMap: options.sourceMap
 }
}

修改为:

const postcssLoader = {
  loader: 'postcss-loader',
  options: {
   sourceMap: options.sourceMap,
   plugins: [
    require('postcss-pxtorem')({
     'rootValue': 32,
     propList: ['*']
    })
   ]
 }
}

按照上述配置项目后,即可在开发中直接使用 px 单位开发。

例如设计给出的设计图是 750 * 1136,那么可以直接在页面中写

body {
 width: 750px;
 height: 1136px;
}

将被转换为

body {
 widht: 23.4375rem;
 height: 35.5rem;
}

总结

以上所述是小编给大家介绍的Vue项目自动转换 px 为 rem的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

支持AG亚游集团 www.meeetang.com

最新文章

点击排行

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号@版权所有AG亚游集团

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

沪苏浙皖组建长三角区域合作办公室 在上海办公 上财统管学院是院长周勇猎艳的后花园?院方回应 ofo生死局:拿什么续命? 川内优辉勇夺波马冠军 他的成功靠着10条秘诀 为什么疫苗容易出问题? 美军举行55具遗骸回国仪式 仍有5000多具留在朝鲜 热身-西塞2球塔神刘军帅破门 鲁能4-0胜新疆 人大代表:“港独”像毒品 强化教育是排毒良方 特朗普扬言要打叙利亚 俄方:不跟你玩推特外交 蔡英文赖清德不满意度持续飙高 这锅该由谁来背? 菲律宾众议长闪电换人 前总统阿罗约宣誓就职(图) 这13座城市可率先试验5G 下载2G电影眨眼间即完成
巴媒曝孔卡已与上港解约 恢复自由身可签任何队 霍金与中国网友曾聊高考和中秋 调侃自己客串演出 中国500吨级火箭发动机样机年内问世 已完成技术突破 丑陋!曼联版终极乱战 穆帅最大软肋又被狠戳 环境部谈7省市整改:个别地区效果不理想 甚至恶化 鸿海回应台湾地区裁员7000传言:子虚乌有 “大城市”铁岭不仅有二人转 9月牵手女子中巡赛 亚泰发追究球员违约声明 谴责不良球员代理人 趣店四季度财报亮眼 股价盘前一度涨逾8% 日称中国海军哈尔滨舰穿越对马海峡驶进日本海(图) 新京报:西安为何会“一面引进人才一面高考设限” 两岸记者:改革开放造就深圳 台湾应向大陆学习
5千万得主一年花掉3千万 壕购赛马拒翻修房子 家有电磁炉的要注意 这样使用会爆炸 各路资本加快布局“知识付费” 巴西维持利率不变 在新兴市场动荡之际结束宽松周期 日本决定放弃自主开发下一代战斗机 或与美共同开发 王毅:有政治互信 喜马拉雅山也阻挡不了中印往来 人物|0分也让人爱不释手!他的报销意味着什么 德布劳内:萨拉赫表现难以置信 我总在高水准上 城围联牵手柳州:岭树重遮千里目 江流曲似九回肠 过年摆地摊赚10万 什么项目前景好 在农村养殖什么赚钱 微信赚钱的三大方法 AG亚游集团