我建议你做以下的事情:
body为class使用jQuery/JS.在Less中,编写以下代码,静态编译并将编译后的CSS链接到您的页面.
body {
background-color: red; /* default */
&.red {background-color: red;}
&.green{background-color: green;}
&.blue{background-color: blue;}
}Run Code Online (Sandbox Code Playgroud)window.onload = function() {
document.querySelector('#color-chooser').addEventListener('change', function() {
document.body.className = this.value;
});
}Run Code Online (Sandbox Code Playgroud)
/* compiled CSS based on the Less code provided above */
body {
background-color: red;
/* default */
}
body.red {
background-color: red;
}
body.green {
background-color: green;
}
body.blue {
background-color: blue;
}Run Code Online (Sandbox Code Playgroud)
<label>Select Background Color:</label>
<select id='color-chooser'>
<option value='red'>Red</option>
<option value='blue'>Blue</option>
<option value='green'>Green (Hex)</option>
</select>Run Code Online (Sandbox Code Playgroud)
或者,如果您坚持通过前端动态执行,那么您可以使用modifyVars选项:
请注意,我不建议使用此选项,因为Less网站本身声明只有在没有其他选择时才应使用它.
HTML:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet/less" type="text/css" href="styles.less" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/less.js/2.7.1/less.min.js"></script>
</head>
<body>
<label>Select Background Color:</label>
<select id='color-chooser'>
<option value='red'>Red</option>
<option value='blue'>Blue</option>
<option value='#0F0'>Green (Hex)</option>
</select>
<script type="text/javascript" language="javascript">
document.querySelector('#color-chooser').addEventListener('change', function(){
less.modifyVars({ /* this sets the color to the variable */
'@bgcolor': this.value
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
styles.less:
body {
background-color: @bgcolor;
}
@bgcolor: red;
Run Code Online (Sandbox Code Playgroud)
Plunker Demo(无法将其放入片段)
| 归档时间: |
|
| 查看次数: |
1672 次 |
| 最近记录: |