【发布时间】:2012-11-29 13:53:19
【问题描述】:
过去 1.5 小时我一直在阅读这方面的内容,但仍然找不到简明扼要的决定性答案。
据我了解,浏览器从右到左解析 CSS 选择器。
这意味着像这样的长 CSS 选择器:
.card .container .businesscard .pinfo li.pinfo-box span:first-child
是 SO 中出现过的效率最低的代码行之一。
首先,我说的对吗?
其次,我正在使用 LESS 设计一个丰富的 UI,它最终会从我正在编码的嵌套设计中产生这种庞大的选择器。
可以做些什么来避免这种选择器?仅依靠类和 ID?但话说回来,如果你不会写嵌套的 CSS,那么使用 LESS 的目的是什么?
感谢您的意见。
【问题讨论】:
-
听起来你把选择器复杂化了。该选择器中是否需要
.container?如果.container不是它的祖先之一,你真的打算让span:first-child的样式不同吗? -
我明白了。我想我嵌套得太深了。
-
奇怪的是,昨天有人问了一个关于 Sass/SCSS 的类似问题:stackoverflow.com/questions/13805324/…
-
嗯。我可能确实找到了它,因为我正在搜索 LESS。谢谢 - 它有一些很棒的信息。
-
也就是说,是否可以增强 LESS 解析器以分解嵌套和优化选择器?例如将其限制为 3 个级别的顶部。比这更深,它会从右到左破坏提取物巢。可能的?可靠的?你怎么看?
标签: css performance optimization css-selectors less