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 简单抽屉效果的实现代码
Mar 09 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 Javascript
告诉你什么是javascript的回调函数
Sep 04 Javascript
javascript弹出页面回传值的方法
Jan 28 Javascript
JavaScript调用客户端Java程序的方法
Jul 27 Javascript
jQuery实现字符串全部替换的方法
Dec 12 Javascript
js实现随机点名系统(实例讲解)
Oct 18 Javascript
javascript 原型与原型链的理解及实例分析
Nov 23 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
基于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学习之PHP运算符
2006/10/09 PHP
php中yii框架实例用法
2020/12/22 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
PHP守护进程实例
2015/03/06 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
微信小程序模板template简单用法示例
2018/12/04 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
Python编写百度贴吧的简单爬虫
2015/04/02 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
python中plot实现即时数据动态显示方法
2018/06/22 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python配置grpc环境
2019/01/01 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
在Mac中PyCharm配置python Anaconda环境过程图解
2020/03/11 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
python字典与json转换的方法总结
2020/12/28 Python
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
大学生大二自我鉴定
2013/10/28 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
Spring实现内置监听器
2021/07/09 Java/Android