自定义编译器:用Sass编写自己的CSS预处理器插件
通过Sass的@function和@mixin实现类似PostCSS插件的功能,如自动添加浏览器前缀、单位转换、样式重置注入,成为Sass元编程的终极实践。 · 难度:入门 · +10XP
自定义编译器:用Sass编写自己的CSS预处理器插件
这个高阶专题教你如何利用Sass的函数链和混入拦截器,构建一个迷你『插件系统』。例如:写一个@function prefix($property, $value)自动添加-webkit-、-moz-前缀;创建一个@mixin responsive-font通过传入步长自动生成所有断点;还可以实现一个编译时样式重置注入器,避免手动复制。大量使用meta.call、meta.get-function进行高阶函数传递。
@function prefix($prop, $value) { $prefixes: ('-webkit-', '-moz-', '-ms-'); $result: (); @each $pre in $prefixes { $result: append($result, unquote('#{$pre}#{$prop}: #{$value}'), comma); } @return $result; } // 使用 .box { #{prefix('transform', 'rotate(10deg)')}; // 输出 -webkit-transform: rotate(10deg), -moz-transform: ... } @mixin plugin-reset { *, *::before, *::after { box-sizing: border-box; margin: 0; } } @include plugin-reset;