如果类实际上没有定义类,那么将类名分配给元素的css类属性会对浏览器的性能产生负面影响吗?
对于使用JQuery的选择器使用类名是很常见的。我通常使用一个只用于选择元素的类,并且从不在任何地方实际定义类。
我假设大多数浏览器都会寻找css类定义,如果定义了样式,你可能会以某种方式使搜索短路?
我的理解是在呈现页面元素之前将css样式编译在一起。这就是为什么将所有CSS定义保持在一起而不是将它们与脚本标记分开是很重要的,因为它会导致大多数浏览器在每次与其他定义混合时重新编译CSS。这种含义可能非常严重,允许在应用样式之前呈现页面。
然而,在实践中,我猜想定义或不定义CSS类之间的性能差异可以忽略不计。
答案 0 :(得分:6)
最简单的思考方法是记住CSS应用于HTML,而不是调用CSS选择器的HTML。
当浏览器解析CSS文件时,它会从右到左读取一个选择器以查看应用样式的位置。例如.foo ul {}将检查页面上的所有ul标签,然后检查它们是否包含在.foo中。因为它是以这种方式解析的,所以HTML中额外的未使用的类无关紧要。它只检查CSS中指定的id和类。
答案 1 :(得分:1)
由于class属性是一个HTML属性,如果没有CSS或Javascript调用它,它可以插入没有问题。它可以独立地坐在那里,没有任何副作用。它不需要由CSS选择,它可以由JS单独使用。
本文可能会帮助您了解更多信息: