Beej's Bit Bucket
a day ago
- CSS缺乏变量,导致像主题色这样的硬编码常量难以维护。
- m4是一种宏处理器,可以替代字符串,从而轻松更新CSS值。
- 基本用法:用`define(`NAME', `value')`定义一个宏,并在CSS中使用;运行`m4 file.css.m4 > file.css`。
- m4中的引号使用反引号(`)作为开始,撇号(')作为结束,以防止宏展开。
- `dnl`指令删除define行后的换行符,以避免输出中出现多余的空行。
- 宏名称后的括号(例如`THEMECOLOR()`)允许宏与其他文本相邻放置。
- 可以通过`include()`或`sinclude()`包含外部文件,实现模块化CSS。
- 使用`eval()`可以进行整数运算,例如`eval(XPOS + 40)`用于计算位置。
- m4也可用于HTML,但由于缺乏多字节支持和潜在的复杂性,需要谨慎使用。
- 还有其他CSS专用工具如Less和Sass,但m4轻量、符合POSIX标准且广泛可用。