我将这些CSS选择器重构为Sass:
#romtest .detailed th:nth-child(2),
#romtest .detailed th:nth-child(4),
#romtest .detailed th:nth-child(6),
#romtest .detailed td:nth-child(2),
#romtest .detailed td:nth-child(3),
#romtest .detailed td:nth-child(6),
#romtest .detailed td:nth-child(7),
#romtest .detailed td.last:nth-child(2),
#romtest .detailed td.last:nth-child(4) {
background:#e5e5e5;
}
...并想出了这个:
#romtest .detailed {
th:nth-child {
&(2), &(4), &(6) {
background:#e5e5e5;
}
}
td:nth-child {
&(2), &(3), &(6), &(7) {
background:#e5e5e5;
}
}
td.last:nth-child {
&(2), &(4) {
background:#e5e5e5;
}
}
}
不幸的是,这引发了一个错误:
“&”后的无效CSSS:预期的“ {”为“((2),&(4),&(6){”
我也知道这样做会更好,因为我:
- 重复背景色
- 重复数字-即(2)和(6)
我应该如何重构这些选择器?
我会在这里变得聪明一点时要小心。我认为它确实令人困惑,使用更高级的
nth-child
参数只会使其变得更加复杂。至于背景色,我只是将其设置为变量。在我意识到尝试变得太聪明可能不是一件坏事之前,我想出了什么。
这是一个快速演示:http : //codepen.io/anon/pen/BEImD
- - 编辑 - -
这是避免重新键入的另一种方法
background-color
: