仅使用HTML中的类而不是ID和类是否有任何负面影响?(意思是即使一个元素出现一次,它仍然被赋予一个类而不是一个id)
编辑 - 使用JavaScript与类而不是ID时,性能有多严重?
对于JavaScript,ID提供了一种快速且确定的方式来选择一个且仅一个元素.按类选择(例如使用类似jQuery的库)可能很有用,例如"对类名为XYZ的所有元素执行此操作".
使用JavaScript与类而不是ID相比,性能有多严重?
试一试,看看: http ://jsperf.com/class-versus-id.在Chrome中,我看到了不同的差异(使用类名慢了5%-40%).请注意,这getElementsByClassName并不是普遍支持的(John Resig 对自定义实施的比较).
从CSS的角度来看,我谨慎使用ID,只有当我知道会有一个匹配时(因为ID必须是唯一的).
但是,我认为这个问题忽略了CSS最重要的能力之一:使用结构选择器的能力.如果没有这些选择器与类(有时是ID)相结合,您可能会有更脆弱和冗长的CSS.
当在像Sizzle这样的引擎中实现时,复杂选择器在JavaScript中也非常有用.
换句话说,每个元素可能都没有明确分配给它的ID和/或类.
考虑:
.foo .bar1 { }
.foo .bar2 { }
#bar3 { }
Run Code Online (Sandbox Code Playgroud)
与:
.foo > SECTION { }
.foo > SECTION + SECTION { }
.foo:last-child { }
SECTION H2 { }
P + P { margin-top: 1em; }
/* etc */
Run Code Online (Sandbox Code Playgroud)
在第一个示例中,所有内容都必须明确标识ID或者声明类.第二个例子更多地依赖于文档结构.
最终目标应该是可维护的代码,同时实现最清晰的标记.