我刚刚了解了Sass,非常兴奋。
在我的网站中,我使用子级组合器(E > F
)来实现树状导航菜单的样式。
有没有一种更简单(或更好)的Sass语法可以重写这段代码?
#foo > ul > li > ul > li > a {
color: red;
}
我刚刚了解了Sass,非常兴奋。
在我的网站中,我使用子级组合器(E > F
)来实现树状导航菜单的样式。
有没有一种更简单(或更好)的Sass语法可以重写这段代码?
#foo > ul > li > ul > li > a {
color: red;
}
如果没有合并的子选择器,你可能会做类似于这样的事情:
foo {
bar {
baz {
color: red;
}
}
}
如果你想使用>
来复制相同的语法,你可以这样做:
foo {
> bar {
> baz {
color: red;
}
}
}
这段代码编译后会得到以下结果:
foo > bar > baz {
color: red;
}
或者在 Sass 中:
foo
> bar
> baz
color: red
对于你所拥有的这个单独规则,没有更短的方法来实现。子元素选择器在CSS和Sass/SCSS中是相同的,也没有其他替代方法。
然而,如果你有多个类似于这样的规则:
#foo > ul > li > ul > li > a:nth-child(3n+1) {
color: red;
}
#foo > ul > li > ul > li > a:nth-child(3n+2) {
color: green;
}
#foo > ul > li > ul > li > a:nth-child(3n+3) {
color: blue;
}
你可以将它们压缩为以下其中一个:/* Sass */
#foo > ul > li > ul > li
> a:nth-child(3n+1)
color: red
> a:nth-child(3n+2)
color: green
> a:nth-child(3n+3)
color: blue
/* SCSS */
#foo > ul > li > ul > li {
> a:nth-child(3n+1) { color: red; }
> a:nth-child(3n+2) { color: green; }
> a:nth-child(3n+3) { color: blue; }
}