当你具体的时候,CSS是否更快?
div.container比.container更快吗? 你知道像在jQuery中,如果你更加具体的select器,它会更快,因为它迭代通过less..是这种情况下的CSS?
有没有一种方法来衡量在CSS性能? 性能明智,这样的事情甚至是重要的,或基本上都取决于文本的重量?
如果有人知道答案,我会很高兴,但实际上我发现了一个类似的问题,没有一定的答案。 如果指定的更好,CSS可以更有效率吗?
在现实世界中,速度差异可以忽略不计。
技术.container
将会更快,因为它有更less的select器来处理。
select器具有固有的效率。 因此,效率更低的CSSselect器的顺序如下所示:
- ID, 例如
#header
- 类, 例如
.promo
- types, 例如
div
- 相邻的兄弟姐妹, 例如
h2 + p
- 孩子, 例如
li > ul
- 后代*,例如
ul a*
- 通用, 即
*
- 属性, 例如
[type="text"]
- 伪类/元素, 例如
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。
免责声明:我不知道浏览器是如何真正实现这些东西的。 我的结论是基于链接的文章。