所以,我正在研究一些命名约定。我想尝试使用类似于.block(red)
的类名。
所以我的HTML看起来像:
<div class="block(red)"></div>
我的已编译的 css应如下所示:
.block(red) {
padding: 100px;
height: 100px;
width: 100px;
background: red;
}
所以我希望我的SASS看起来像:
.block {
padding: 100px;
height: 100px;
width: 100px;
&\(red\) {
background: red;
}
}
显然,因为类名的(red)
部分只是扩展了父类名,所以它不会引入.block
的样式,我可以在{{1}内@extend .block
但是,随着时间的推移,这将会有点混乱。
那么,你们有什么方法可以想到,这让我像上面的例子那样写SASS而只需要在我的元素上写一个类吗?
答案 0 :(得分:1)
首先,parentheses aren't allowed in CSS class names ,它们是为某些选择器保留的。
更新:使用<script>
function OpenPage(){
intel.xdk.device.launchExternal("http://www.example.com");
}
</script>
<a onclick="OpenPage();">Open Page</a>
转义括号似乎是允许的并且有效。
如果你想做这样的事情,你可以使用OOCSS, BEM, SMACSS, ACSS or something similar。
如果您真的只想使用一个CSS类,可以像这样使用 SCSS \(\)
:
Codepen: http://codepen.io/grrtbrtr/pen/KVeOja
<强> SCSS 强>
@mixin
<强> HTML 强>
@mixin modulify($selection-modifier) {
$self: &;
&\(#{$selection-modifier}\) {
@content;
@extend #{$self};
}
}
.block {
padding: 100px;
height: 100px;
width: 100px;
@include modulify('red') {
background: red;
}
@include modulify('blue') {
background: blue;
}
}
对我来说,它保持SCSS代码干净,并允许您在HTML中仅使用1个CSS类。