我知道这太挑剔了,但是我正在和一个编辑一起工作,这个编辑器是lints CSS并经常抱怨的。
don't use adjoining classes > e.g. .foo.bar
我无视这些警告,但这让我感到好奇,在上面找不到任何东西。说我有:
<ul class="foo bar"></ul>
哪个CSS选择器更快:
ul.foo
.bar.foo
我知道选择器从右向左工作,所以在这两种情况下都将首先选择foo
,然后浏览器必须找到所选内容中的所有ul
(?)或者所有.bar
元素(?)。
问题
在CSS中,[class][class]
比[element][class]
快吗?
谢谢!
发布于 2015-05-01 12:02:01
仅仅是为了完整性:为什么css lint会抱怨呢?
答:相邻的类不适用于一些非常老的浏览器。
来自http://csslint.net/about.html的报价
不使用相邻类 相邻的类看起来像.foo.bar。虽然在CSS中技术上是允许的,但是Internet 6和更早版本并没有正确地处理这些问题。
发布于 2015-01-30 09:21:16
我认为一般规则,也是我自己已经注意到的一条规则是,使用.class .class会稍微快一些,尽管它将取决于页面本身(我认为在一定程度上应用了什么样式)。
不同的选择器的速度通常被认为是(从最快到最慢);
ID ->类->类型->相邻->子->后代->通用->属性->伪
就个人而言,我也认为从标记的角度来看,使用类来选择第一个元素也更有利。如果将来要添加一个元素,它避免了相同类型的元素受到CSS的影响的可能性。
这也符合许多CSS写作指南,这些指南说,使用类进行样式设计更有意义。
我还记得一个涵盖CSS效率的好文章。我希望那篇文章现在同意我的观点,因为我已经有一段时间没读过它了。在站点的某个地方,他们也会看到块元素修饰符编写CSS的技术,这是一个有趣的阅读,如果您想要更有效地构建CSS,这是一个很好的起点(尽管这需要一些您的头在第一次左右)。
https://stackoverflow.com/questions/25685905
复制相似问题