LESS 中的分层/嵌套样式
Hierarchical / nested styles in LESS
为了更好的可读性和更清晰的代码,我在 LESS 中使用嵌套样式,如下所示:
.item {
.title {
/* ... */
}
.content {
/* ... */
}
}
问题是它编译成的后代选择器,例如:
.item .title {
/* ... */
}
据说对性能来说真的很糟糕。对于现代浏览器来说仍然如此吗?如果是这样,还有什么选择? (我的目标是组织代码,我可能真的不需要后代选择器。)
据我所知,.item .title
是在 .item
中 select 一个 .title
的唯一方法(@Oriol 提到的 .item > .title
可能在某些情况下也有效)。 Less 使您能够嵌套此关系。
当你不需要那个关系时,你不应该把它嵌套在你的 Less 代码中。可以使用注释来明确一组 selector 属于某个其他 selector。或者考虑 BEM 方法,参见 http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/,然后 .item .title 可以写成 item__title {}
.
为了更好的可读性和更清晰的代码,我在 LESS 中使用嵌套样式,如下所示:
.item {
.title {
/* ... */
}
.content {
/* ... */
}
}
问题是它编译成的后代选择器,例如:
.item .title {
/* ... */
}
据说对性能来说真的很糟糕。对于现代浏览器来说仍然如此吗?如果是这样,还有什么选择? (我的目标是组织代码,我可能真的不需要后代选择器。)
据我所知,.item .title
是在 .item
中 select 一个 .title
的唯一方法(@Oriol 提到的 .item > .title
可能在某些情况下也有效)。 Less 使您能够嵌套此关系。
当你不需要那个关系时,你不应该把它嵌套在你的 Less 代码中。可以使用注释来明确一组 selector 属于某个其他 selector。或者考虑 BEM 方法,参见 http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/,然后 .item .title 可以写成 item__title {}
.