postcss px转不转rem呢?

Math点PI / 2023-08-18 / 原文

1、用postcss时,有时候你的px不转rem;你希望他转;
如: elementui的labelWidth配置了数值但是不转
原因:行内元素都不转
解决方法:放到vue的style元素中就行啦

2、有的你不希望他转
解决方法:
方法1:px单位改为大写 PX
方法2:这行css后注释上 /* no */
why? 我看了下postcss的源码;大体就是先把这个css字符串转为css的AST【css.parse】;然后根据AST条件来选择性转换为rem;
看下这个转换函数,拿到astrule;循环每行css rule;先看你有没有小写px;不符合就不转;在看你有没有注释 no,有就containe不转

方法3:我的建议是一劳永逸的方法;但是会影响node_modules;这样后续就只能用我的node_modules了;
css.parse前,match一下关键字,不转就是了;