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 相关文章推荐
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
Sep 27 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
Dec 27 Javascript
jQuery拖拽插件gridster使用指南
Apr 21 Javascript
jQuery的几个我们必须了解的特点
May 03 Javascript
js限制文本框只能输入中文的方法
Aug 11 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
JavaScript 中的 this 工作原理
Jun 20 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
Nov 11 Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 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
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
react build 后打包发布总结
2018/08/24 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
python中的多重继承实例讲解
2014/09/28 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Python生成不重复随机值的方法
2015/05/11 Python
python之Socket网络编程详解
2016/09/29 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
Python使用sax模块解析XML文件示例
2019/04/04 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
css3强大的动画效果animate使用说明及浏览器兼容介绍
2013/01/09 HTML / CSS
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
连锁经营管理专业大学生求职信
2013/10/30 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
总经理助理岗位职责
2015/01/31 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
各国货币符号大全
2022/02/17 杂记
MySQL Server 层四个日志
2022/03/31 MySQL
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL