在HTML中使用类而不是ID和类是否有任何负面影响? (意思是即使一个元素出现一次,它仍然被赋予一个类而不是一个id)
编辑 - 在使用JavaScript而不是ID时,性能有多严重?
答案 0 :(得分:5)
对于JavaScript,ID提供了一种快速且确定的方式来选择一个且仅一个元素。按类选择(例如使用类似jQuery的库)可能是有用的,例如“对类名为XYZ的所有元素执行此操作。”
在类中使用JavaScript时性能有多严重 而不是ids?
试一试,看看: http://jsperf.com/class-versus-id。在Chrome中,我看到了不同的差异(使用类名慢了5%-40%)。请注意,getElementsByClassName
并非普遍支持(John Resig有comparison of custom implmentations)。
从CSS的角度来看,我谨慎地使用ID,只有当我知道会有一个匹配时(因为ID必须是唯一的)。
但是,我认为这个问题忽略了CSS最重要的能力之一:使用structural selectors的能力。如果没有这些选择器与类(有时是ID)相结合,您可能会有更脆弱和冗长的CSS。
复杂选择器在Sizzle等引擎中实现时,在JavaScript中也非常有用。
换句话说,每个元素都可能没有明确分配给它的ID和/或类。
考虑:
.foo .bar1 { }
.foo .bar2 { }
#bar3 { }
对战:
.foo > SECTION { }
.foo > SECTION + SECTION { }
.foo:last-child { }
SECTION H2 { }
P + P { margin-top: 1em; }
/* etc */
在第一个示例中,所有内容都必须明确标识,或者说明了类。第二个例子更多地依赖于文档结构。
最终目标应该是可维护的代码,同时实现最清晰的标记。
答案 1 :(得分:1)
如果您不需要javascript的钩子,则不需要id。与id不同,类是可重用的,你会发现some who advocate完全避免使用id作为css(我自己避免使用它。)你会发现CSSLint建议你也避免使用它们。目前尚未就此达成广泛共识,因此您应该考虑该特定论点的双方。
答案 2 :(得分:0)
不使用ID没有缺点,除非您需要专门引用单个元素。
类也是可选的,但允许您一次引用多个元素。
这就是它的全部内容。
答案 3 :(得分:0)
不,没有。
答案 4 :(得分:0)
没有真正的问题。 相反,我会说另一种方式是错误的,只给一个单独的类,没有ID到许多不同的元素。如果您想从该类的所有元素中单独访问单个元素,那么您将遇到麻烦
答案 5 :(得分:0)
ID的优点是在CSS中它比类更具体,所以你可以利用它,如果需要,在JavaScript中,通过ID访问DOM元素比按类访问更快。
关于在你的情况下不使用ID是否不利,将取决于上述是否是问题。
答案 6 :(得分:0)
根据经验,我不得不说不使用ID会有一些缺点。特别是在尝试将您使用的任何JavaScript与任何相当复杂的Web应用程序集成时(因为没有更好的替代方案),或者在解析完整的Web页面时,甚至在为您自己的网站开发JavaScript时。
如果您曾经尝试过上述任何一项,那么您可能已经发现自己希望每个主要元素都有ID,因为:
仅举几个原因,我确信可以找到更多原因。
我必须说,正确平衡地使用ID和类是可行的方法。如果您不想在CSS中使用ID,则不要。但是,如果您或其他人可以利用ID,那么这并不会阻止您使用ID。