当你具体的时候,CSS是否更快?

div.container.container更快吗? 你知道像在jQuery中,如果你更加具体的select器,它会更快,因为它迭代通过less..是这种情况下的CSS?

有没有一种方法来衡量在CSS性能? 性能明智,这样的事情甚至是重要的,或基本上都取决于文本的重量?

如果有人知道答案,我会很高兴,但实际上我发现了一个类似的问题,没有一定的答案。 如果指定的更好,CSS可以更有效率吗?

在现实世界中,速度差异可以忽略不计。
技术.container将会更快,因为它有更less的select器来处理。

select器具有固有的效率。 因此,效率更低的CSSselect器的顺序如下所示:

  1. ID, 例如#header
  2. 类, 例如.promo
  3. types, 例如div
  4. 相邻的兄弟姐妹, 例如h2 + p
  5. 孩子, 例如li > ul
  6. 后代*,例如ul a*
  7. 通用, *
  8. 属性, 例如[type="text"]
  9. 伪类/元素, 例如a:hover

关于你的第二个问题:

有没有一种方法来衡量CSS的性能?

史蒂夫Souders推出了一个在线testing来衡量仍然可以在这里访问的CSS的性能。

现在有更好的衡量performance的方法,但是这是一个快速简单的资源,你可以玩。

性能明智,这样的事情甚至是重要的,或基本上都取决于文本的重量?

简短的回答是“不是真的”。

漫长的答案是“取决于”。 如果您正在一个简单的网站上工作,除了您可能从最佳实践中获得的一般知识之外,没有必要对CSS性能大惊小怪。

如果你正在创build一个拥有数以万计的DOM元素的网站,那么是的,这将是重要的。

一般来说,规则越less越好,所以.container会比div.container快。 除了caching之外,.container首先被读取,然后其他元素必须添加div作为二级filter…在许多情况下是不必要的。

这在引擎中很常见,虽然有一些小小的变化。

看到这篇文章: 编写高效的CSS ,尽pipe它来自MDN(因此是Mozilla的),对于我所知道的关于引擎的大部分内容来说都是正确的。

最好的情况和最坏的情况之间的三angular洲是50毫秒。 换句话说,考虑select器的性能,但不要浪费太多的时间。 请参阅: https : //smacss.com/book/selectors

所以我认为只有扩展CSS规则才能获得更高的性能是没有多大意义的。 只要考虑更高的networkingstream量,也许更糟糕的可维护性…但是在链接中,您可以阅读哪些规则,而不必增加CSS大小。

如果.container和div.container在页面上完全匹配相同的元素,那么第一个元素可能会更快:如果浏览器首先评估.container,实际上它已经完成了,但是使用div.container它还有ADDITIONALLY来检查,元素是否是div。

免责声明:我不知道浏览器是如何真正实现这些东西的。 我的结论是基于链接的文章。