Tot*_*Tot 9 css performance css-selectors
我想知道使用属性选择器而不是类选择器是否存在性能问题.
div.test {}
div[test] {}
Run Code Online (Sandbox Code Playgroud)
PS:我只对CSS性能感兴趣,而不是JS.
小智 5
有人实际上创建了一个现实生活中的选择器测试来展示选择器匹配性能。
该表概述了属性选择器比标准类慢大约 3 倍。
依赖属性选择器还需要更多字符来定位元素。最好定义简短的类名,以保持样式表较小。
例子:
// 17 Characters (attribute)
[title="example"] {
...
}
// 6 Characters (class)
.title {
...
}
Run Code Online (Sandbox Code Playgroud)
http://scope.bitbucket.org/tests/selector-matching-performance/
不存在性能问题。两者的作用相同。但是 css 的类和元素的特殊性是不同的。
特异性- 特异性决定浏览器应用哪个 CSS 规则。
如果两个选择器应用于同一元素,则特异性较高的选择器获胜。
但特殊性是有层次的。
资料来源:http ://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/
因此div.test {}
更加具体。