abb*_*zoo 6 html css sass gruntjs
我想知道您是否可以使用 SASS 变量来生成内联 CSS。
我知道您可以执行以下操作:
$my-class: yellow;
$yellow: #ffff00;
.#{$my-class} {
color: $yellow;
}
Run Code Online (Sandbox Code Playgroud)
然后使用输出的 Grunt 任务内联 CSS:
<div class="yellow" style="color: #ffff000;">Hello world</div>
Run Code Online (Sandbox Code Playgroud)
但是是否可以使用变量:
$font-family: Arial, sans-serif;
Run Code Online (Sandbox Code Playgroud)
以这样的方式:
<div style="font-family: $font-family;">Hello world</div>
Run Code Online (Sandbox Code Playgroud)
这将输出:
<div class="font-family: Arial, sans-serif;">Hello world</div>
Run Code Online (Sandbox Code Playgroud)
我很确定您不能使用基本的 SASS,但很高兴听到一些关于它的想法。
小智 1
您可以使用 html 预处理器(例如jade)和sass-extract等工具来完成此操作。
这是一个示例,您可以在示例中得到结果。
样式.scss
$fontFamily: Arial;
Run Code Online (Sandbox Code Playgroud)
模板.jade
div(style="font-family: #{$fontFamily.value};") Hello world
Run Code Online (Sandbox Code Playgroud)
index.js(也可以是 grunt/gulp 任务)
const sassExtract = require('sass-extract');
const jade = require('jade');
const style = sassExtract.renderSync({ file: './style.scss' });
const html = jade.renderFile('./template.jade', style.vars.global);
console.log(html);
Run Code Online (Sandbox Code Playgroud)
输出
<div style="font-family: Arial">Hello world</div>
Run Code Online (Sandbox Code Playgroud)