vue3.0中使用postcss-pxtorem的具体方法


Posted in Javascript onNovember 20, 2019

postcss-pxtorem是PostCSS的插件,用于将像素单元生成rem单位。

前端开发还原设计稿的重要性毋庸置疑,目前应用的单位最多还是rem,然而每次在制作过程中需要自己计算rem值,为了能够直接按照设计图的尺寸开发,并且能自动编译转换成rem,下面就来分享下postcss-pxtorem的使用。

1.安装依赖

npm install postcss-pxtorem -D

2.设置规则(更改postcss.config.js,该文件为使用vue-cli3自动创建的文件)

module.exports = {
 plugins: {
  'autoprefixer': {
   browsers: ['Android >= 4.0', 'iOS >= 7']
  },
  'postcss-pxtorem': {
   rootValue: 16,//结果为:设计稿元素尺寸/16,比如元素宽320px,最终页面会换算成 20rem
   propList: ['*']
  }
 }
}

操作到这里移动端自动适配了吗,当然不能,目前只是将px单位转换成rem,移动端适配还差最后一步,初接触rem理解起来有点懵,后来发现了一个好理解的方法,下面来分享一下。

现在我们作一个实验,你可以新建一个网页,并写入如下代码:

<div class="test">
  <p class="hello">Hello</p>
</div>

然后给html一个基本的样式:

.test{
  width:320px;
  height:160px;
  background-color: bisque;
  text-align: center;
}
.hello{
  color:red;
}

上边我们使用了还是传统的使用px作为单位,我们在移动端调试模式iphone5环境查看一下。会发现div的宽度是正好的,我们再查看一下字体,发现大小是16px。

我们现在可以把CSS中的px单位换成rem单位来进行测试。因为html根元素的字体大小是16px,那么换成rem单位,直接除以16就好。

.test{
  width:20rem;
  height:10rem;
  background-color: bisque;
  text-align: center;
}
.hello{
  color:red;
  font-size:1rem;
}

明白了REM的原理后,我们就可以使用这个特点来进行适应布局了,这也是现在比较主流的移动端web适配方案。src目录下,新建 libs/rem.js 输入如下代码

// 设置 rem 函数
function setRem () {

  // 320 默认大小16px; 320px = 20rem ;每个元素px基础上/16
  let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
//得到html的Dom元素
  let htmlDom = document.getElementsByTagName('html')[0];
//设置根元素字体大小
  htmlDom.style.fontSize= htmlWidth/20 + 'px';
}
// 初始化
setRem();
// 改变窗口大小时重新设置 rem
window.onresize = function () {
  setRem()
}

在main.js中引入rem.js

import './libs/rem.js';

最后刷新页面看下,就会发现原本用px的单位已经自动换算成了rem;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开
Aug 15 Javascript
JavaScript中的排序算法代码
Feb 22 Javascript
把input初始值不写value的具体实现方法
Jul 04 Javascript
javascript自然分类法算法实现代码
Oct 11 Javascript
jquery ajax,ashx,json的用法总结
Feb 12 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
JavaScript实现表格快速变色效果代码
Aug 19 Javascript
解析vue中的$mount
Dec 21 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
详解如何用babel转换es6的class语法
Apr 03 Javascript
vue 地区选择器v-distpicker的常用功能
Jul 23 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 #Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 #Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 #Javascript
详解Nuxt.js 实战集锦
Nov 19 #Javascript
javascript的delete运算符知识点总结
Nov 19 #Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 #Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 #Javascript
You might like
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
python实现简单遗传算法
2018/03/19 Python
python实现猜数字小游戏
2020/03/24 Python
Django--权限Permissions的例子
2019/08/28 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
超实用的 30 段 Python 案例
2019/10/10 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
海淘母婴商城:国际妈咪
2016/07/23 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
开学季活动策划方案
2014/02/28 职场文书
成绩单公证书
2014/04/10 职场文书
班级心理活动总结
2014/07/04 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang