当前位置: 首页 > news >正文

Vue项目自动转换px为rem-高保真还原设计图

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

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

技术栈

  • vue-cli:使用脚手架工具创建项目。
  • postcss-pxtorem:转换px为rem的插件。

自动设置根节点htmlfont-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、修改根目录 .postcssrc.js 文件

找到 plugins 属性新增pxtorem的设置"postcss-pxtorem": {"rootValue": 32,"propList": ["*"],// 注意:如果有使用第三方UI如VUX,则需要配置下忽略选择器不转换。// 规则是class中包含的字符串,如vux中所有的class前缀都是weui-。也可以是正则。"selectorBlackList": ["weui-"]
}

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

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

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

将被转换为

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

注意:此方法支持import 和 .vue单文件中style。暂不支持style中使用@import url();

http://www.lryc.cn/news/176698.html

相关文章:

  • rman备份到远程服务器
  • 数据结构与算法
  • 【Web3】DAO相关的基础知识
  • 一文教你学会ArcGIS Pro地图设计与制图系列全流程(3)
  • 用于大规模 MIMO 检测的近似消息传递 (AMP)(Matlab代码实现)
  • 复杂SQL解析
  • js中哪些地方会用到window?
  • KITTI raw_data数据集百度云下载
  • (3) OpenCV图像处理kNN近邻算法
  • 手撸RPC【gw-rpc】
  • 【Linux】:Kafka组件介绍
  • Redis〔篇〕
  • 龙芯2K1000核心板在智能座舱行业产品方案-迅为电子
  • 2023/9/20 -- C++/QT
  • WordPress主题DUX v8.2源码下载
  • c++图像的边缘检测
  • C++ Primer 类和对象(3)
  • IntelliJ IDEA 介绍、安装、配置优化与快捷键大全
  • css 语法笔记
  • 【初阶数据结构】二叉树全面知识总结
  • CMD命令终端快捷键学习
  • Leetcode198. 打家劫舍
  • 前端技术社区总目录
  • 极客时间:左耳听风【文章笔记 思考总结】
  • 《论文阅读27》SuperGlue: Learning Feature Matching with Graph Neural Networks
  • 远程计算机或设备不接受连接解决方法
  • 基于Python实现的快递管理系统源码+数据库,采用PyQt6实现GUI界面
  • 如何使用docker快速部署MinDoc文档系统
  • 9月25日,每日信息差
  • 【网络协议】Https