bus*_*ens 3 css performance css-selectors
每个人都说,* { ... }选择器很慢.但它到底有多慢?
我总是尽量避免它,但有时它非常有用.例如:* + h1 { margin-top 1em; }
简单地说:通用选择器的*速度与页面上的元素一样慢.
由于从右到左匹配的浏览器采用每个元素并将其与所有候选规则匹配,因此每个元素都匹配*得很好.它本身并不会损害性能,但是如果你的页面中有很多元素或者是一个非常复杂的DOM,那么它据称会变慢,但即便如此,它也不会明显降低浏览器的性能.
* + h1例如,甚至类似的东西也是合理的,因为如果你想考虑匹配性能,那么从右到左匹配的浏览器将h1首先在元素上测试该选择器,然后检查它们之前是否有任何元素发生(真的不需要太多努力,因为*基本上是保证匹配).
您可能还希望查看我的这个问题* + *(这是两个通用选择器!).