PostCSS是CSS的转板器(转换编译器,称为简称翻译器)。它可以在同一时间分析和转换诸如babel之类的CSS代码,还为自定义转换提供了插头机制。
在本节中,我们可以通过PX自动REM函数从PostCSS插头开始。
PostCSS是CSS到CSS的翻译。它也分为三个阶段:分析,变换和生成。各种转换插件正在转换阶段工作,根据AST进行分析和转换。
CSS的AST比JS简单得多,有几种主要类型:
Atrule:以 @ a开头的规则,例如:
规则:选择者的规则,例如:
decl:特定样式,例如:
JS解析器的数十个AST更简单吗?
这些可以通过astexplorer.net查看以视觉查看
PostCSS插件正在转换阶段,处理AST节点,并且插件的形式为:
外层函数接受选项,返回插头的对象,声明处理节点的侦听器处理,然后在相应的侦听器中写入处理逻辑。
您也可以这样写:
与第一种类型相比,回到准备中的各种听众,优势是可以存储一些公共逻辑。
然后,您可以运行插头-in:
让我们写一个简单的PX自动REM插头 - 练习手。
PX是一个固定长度单元,设备视口的大小是多种多样的。我们希望通过一组样式适应各种设备的显示,并且需要相对单元。通常使用是REM。
与HTML元素相比,与字体大小相比,REM的本质等效于缩放。
例如,HTML的字体大小设置为100px,然后将1REM等于100px,如果是200px,则将后期的样式写为2REM。
这样,我们只需要修改HTML字体大小即可适应各种屏幕宽度的显示,并且特定的单元将达到相等的比例。
我们需要根据HTML的字体大小值将所有PX转换为REM。通常,他们正在手动这样做,但很麻烦。知道计算方法后,您可以使用PostCSS插件。
接下来,我们将意识到此Postcss插件-in
让我们以插件的基本结构来进行插件的基本结构,只需要声明所处理的侦听器即可声明:
那么该怎么做是将DEL的样式值转换为REM的样式值,只需简单的规律性替换它:
替换字符串的替换方法。第一个参数是匹配的字符串,后续参数是组,第一个组是px的值。
计算与PX相对应的REM需要1REM的PX值,该值可以通过选项支持它。
然后我们测试:
可以看出,转换已经正确完成:
当然,我们的插件只是一种情况,它并不完美。如果是完美的,则需要更复杂的规律性。
PostCSS是CSS的转换器,就像Babel是JS的跨攻击者一样,Postcss的AST只有几个节点。它相对简单。您也可以通过astexplorer.net查看它。
PostCSS还提供插件功能,可以进行一些自定义分析和转换。
我们已经实现了一个简单的PX自动旋转REM Plug -in:
REM是通过等效缩放方法显示不同设备宽度的方案。您需要进行PX进行REM转换。可以使用PostCSS插件来完成此问题。
实际上,有许多应用程序用于Postcs插头的分析和转换功能,例如切换主题颜色。从白色到黑色,您可以自动通过PostCSS分析颜色的价值,然后进行转换。
PostCSS分析和转换CSS能力仍然非常强大且有用。业务中的许多应用程序方案正在等待您发现。