vscode怎么自动将px转换成vw_基于react/vue移动端适配之px自动转rem、vw

作为一名前端开发,在做移动端适配时rem、vw是我们经常用到的单位,但是我们在实际开发过程中需要将设计稿上的px转换成rem,如果手动去计算,将是一个很耗时、费力的过程。这是就需要一个工具可以帮我们自动将px转成rem、vw。

开始之前,我们先来了解一个概念【PostCSS】

PostCSS是一个用 JavaScript 工具和插件转换 CSS 代码的工具,类似babel对js的处理。常见的功能如:

1 . 使用下一代css语法(cssnext)

2 . 自动补全浏览器前缀(autoprefixer)

3 . 自动把px代为转换成rem/vw(postcss-pxtorem/postcss-px-to-viewport)

4 . css代码压缩等等

PostCSS 只是一个工具,本身不会对css一顿操作,一般不单独使用,而是与已有的构建工具进行集成,通过插件实现功能。PostCSS 与主流的构建工具,如 Webpack、Grunt 和 Gulp 都可以进行集成。完成集成之后,选择满足功能需求的 PostCSS 插件并进行配置。

Webpack 中使用 PostCSS 插件示例:

postcss-loader 用来对.css 文件进行处理,并添加在 style-loader 和 css-loader 之后。通过一个额外的 postcss 方法来返回所需要使用的 PostCSS 插件。require('autoprefixer') 的作用是加载 Autoprefixer 插件。

言归正传,接下来我们看一下如果使用PostCSS把px自动转成rem、vw

postcss-pxtorem

功能:把px转换成rem

安装:npm install postcss-pxtorem --save-dev

配置项:

'postcss-pxtorem':{

rootValue:100,// html节点设的font-size大小,由于chrome最小12px,所以基值要设置大写

unitPrecision:5,// 转rem精确到小数点多少位

propList:['font','font-size','line-height','letter-spacing'],// 指定转换成rem的属性,支持 * !

selectorBlackList:[],// str或reg ,指定不转换的选择器,str时包含字段即匹配

replace:true,

mediaQuery:false,// 媒体查询内的px是否转换minPixelValue:0// 小于指定数值的px不转换

}

postcss-px-to-viewport

之前做移动端适配时,基本上是采用rem方案。但随着viewport越来越被大家熟悉,我们似乎发现了一种更好的方案。

功能:将px单位自动转换成viewport单位

安装:npm install postcss-px-to-viewport --save-dev

配置项:

'postcss-px-to-viewport': {

unitToConvert:'px', //要转换的单位,默认是'px'

viewportWidth: 750,  // 视窗的宽度,对应的是我们设计稿的宽度,一般是750,默认是320

viewportHeight: 1334, // 视窗的高度,根据750设备的宽度来指定,一般指定1334,也可以不配置

unitPrecision: 3,    // 指定`px`转换为视窗单位值的小数位数,默认是5

propList: ['*'],    //指定可以转换的css属性,默认是['*'],代表全部属性进行转换

viewportUnit: "vw",  //指定需要转换成的视窗单位,建议使用vw

fontViewportUnit: 'vw',     //指定字体需要转换成的视窗单位,默认vw

selectorBlackList: ['.ignore'],// 指定不转换为视窗单位的类,可以自定义,可以无限添加,建议定义一至两个通用的类名

minPixelValue: 1,    // 小于或等于`1px`不转换为视窗单位,你也可以设置为你想要的值

mediaQuery: false,     // 允许在媒体查询中转换`px`

replace: true,

exclude: [],   //设置忽略文件,如node_modules

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】TransactionScope事务简介

在.NET 1.0/1.1 版本我们使用SqlTransaction.处理事务 string connString ConfigurationManager.ConnectionStrings["db"].ConnectionString; using (var conn new SqlConnection(connString)) { conn.Open(); using (IDbTransaction tran conn.BeginTransact…

后台接收datetime_input上传date日期时间数据到后台报400怎么办?

前端上传日期时间数据到后台时,上传失败我这里是用里存放时间,上传到后台的controller方法时,参数类型是java.util.Date,发现没有到controller方法里面。报错:不能将String转成Date。我想错误的原因是前端传上来的是St…

【转】C#中使用TransactionScope类(分布式事务) 和 锁

如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项: 1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用); 2、具体示例如下: public static void sendMessage(){ TransactionOptions tran…

网络通道数2的倍数_限流笔记-通道限流(二)

在工作中的时候,由于我负责的一个系统需要调用很多的第3方的系统,可是呢,这些个第3方的系统的性能完全不一致,有的好有的坏,还成本都不一样,当然了平时把,直接使用成本低的就行了,但…

【转】[技术回顾系列]--WebService事务处理

如果在WEB服务中有这样一个场景,某个WEB服务的方法要执行两个任务,它首先要在数据库中创建一个新表,接着调用对象来收集和格式化数据,并在新表中插入数据。象这样的一组方法,我们必须保证他们都成功执行,否…

mysql题目_MySQL练习题

创建下列表并创建相关约束问题1:查询出成绩表,而且student_id 后面要有对应的学生名,course_id 后面要有对应的课程名.1 SELECT2 score.sid,3 score.student_id,4 student.sname,5 score.course_id,6 course.cname,7 score.number8 FROM scor…

【转】BASE64编码规则

Base64编码要求把3个8位字节(3*824)转化为4个6位的字节(4*624),之后在6位的前面补两个0,形成8位一个字节的形式。(将字符串转换为二进制,从前往后,每6位一取,…

查看mysql数据库的死锁日志_【MySQL】mysql死锁以及死锁日志分析

1.死锁的概念死锁:死锁一般是事务相互等待对方资源,最后形成环路造成的。对于死锁,数据库处理方法:牺牲一个连接,保证另外一个连接成功执行。发生死锁会返回ERROR:1213 错误提示,大部分的死锁In…

【转】二进制文件和ASCII文件有何区别

二进制文件和ASCII文件(即文本文件)的区别,对于和计算机亲近时间尚短的同学是个难题。本文用简单的例子,试图展示其中的道道,希望能对菜鸟们有些帮助。 1、一个例子:两种100000 有程序: #includ…

mysql优化和索引_mysql优化和索引

表的优化1.定长与变长分离如 int,char(4),time核心且常用字段,建成定长,放在一张表;而varchar,text,blob这种变长字段适合单放一张表,用主键与核心表关联。2.常用字段和不常用字段要分离3.在 1 对多需要关联统计的字段上&#xff…

【转】为什么不能使用字符流读取非文本的二进制文件?

读取文件 刚学Java的IO流部分时,书上说只能使用字节流去读取图片、视频等非文本二进制文件,不能使用字符流,否则文件会损坏。所以我就一直记住这一点了,但是为什么不能使用,这一直是我的一个疑惑。今天,我…

mysql更新一条语句_MySQL一条更新语句是如何执行的

一条查询语句是经过连接器 分析器 优化器 执行器等功能模块,最后到达存储引擎。image以下所说的都基于InnoDb引擎。当有一条记录需要更新的时候,InnoDB引擎会先把记录写到redo log里面,并更新内存,这个时候更新就算完成了。InnoDb…

【转】文本文件和二进制文件区别及java中字节流和字符流归纳

首先在物理上文本文件和二进制文件并没有区别,都是以二进制01的形式存放于存储介质中,他们的区别只是逻辑上的区别,这两种方式只是在编码层次上有差别。文本文件是基于字符编码的文件,常见的编码有ASCII编码…

mysql查询后从高到低排序_[MySQL基础]三、排序查询

排序查询语法:SELECT查询列表FROM表[WHERE 筛选条件]ORDER BY 排序列表 [ASC|DESC]; #[ ]中的内容表示可选特点:asc代表的是升序,desc代表的是降序,如果不写,默认是升序order by子句中可以支持单个字段、多个字段、表达…

【转】如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)

转自:http://blog.csdn.net/jiangqin115/article/details/42684017 UTF-8编码的文本文档,有的带有BOM (Byte Order Mark, 字节序标志),即0xEF, 0xBB, 0xBF,有的没有。Windows下的txt文本编辑器在保存UTF-8格式的文本文档时会自动…

cesium获取模型实时坐标_Cesium 顶点着色器中求解模型坐标

1. 由世界坐标转模型坐标顶点着色器:attribute vec3 position3DHigh;attribute vec3 position3DLow;attribute vec3 normal;attribute vec2 st;attribute float batchId;varying vec3 v_positionEC;varying vec3 v_normalEC;varying vec2 v_st;void main(){vec3 pos…

【转】关于CLR内存管理一些深层次的讨论[上篇]

半年之前,PM让我在部门内部进行一次关于“内存泄露”的专题分享,我为此准备了一份PPT。今天无意中将其翻出来,觉得里面提到的关于CLR下关于内存管理部分的内存还有点意思。为此,今天按照PPT的内容写了一篇文章。本篇文章不会再讨论…

mysql数据库连接地址utf8_在Python中连接到MySQL数据库时UTF8不工作

我正在努力使Python更好地使用UTF-8编码的MySQL数据库,例如,挪威字符。我找了好几个小时,但没能找到像预期的那样有效的东西。以下是从数据库中提取的示例表:mysql> select * from my_table;---------------------| id | shop_…

【转】.NET Remoting

.Net Remoting提供了一种允许一个应用域中的对象与另一个应用域中的对象进行交互的框架。是.NET框架中的一个重要技术改进,它用于减轻运行应用程序的系统开销. 中文名 .Net Remoting 作 用 减轻运行应用程序的系统开销 目录 1 介绍2 .NET Remoting的原理 ▪ 1.NET Rem…

python多重赋值技巧_python教程12课:多元赋值、多重赋值、运算符以及判断字符串类型...

# 多元赋值:# x,y,z 和 1,2,‘String是两个元组,只不过元组的 () 被省略掉了x, y ,z 1, 2, Stringprint(x, y, z)(x, y ,z) (3, 4, String)print(x,y,z)# 一般用在交换变量值#交换变量值常规思路x 10,y 20z 30x ,y, z y,z,xprint(x,y,z)#使用多元赋值…