从语言设计的角度来看,如果你可以有一个只有一个元素的类,那么为 HTML 创建 id 属性有什么意义呢?为什么不只使用类而不使标记复杂化?
我可以想到三种可能的解释,但它们并不能完全满足我,所以我想知道你是否知道为什么 id 包含在 HTML 中。我的想法是:
- id 的存在有助于创建 CSS 样式,因为它更大的特异性使得可以为类的一个成员提供一个 id,以覆盖为该类的其他成员提供的样式。这种解释并不完全让我满意,因为您可以只给它一个额外的类,并将该类的样式放在样式表底部的一个部分中,用于给单个元素的样式。
- 使用 jQuery 选择元素时,一旦找到具有该 id 的元素,DOM 遍历就会停止。因此,id 的存在将使选择运行得更快。这个解释不能让我满意,因为我相当肯定 jQuery 是在 id 和 classes 已经存在很久之后创建的。
- 将 id 作为语言功能有助于确保应该唯一的样式(和选择器)真正应用于一个元素,因为如果不是这种情况,事情就会变得混乱。这种解释不能让我满意,因为当您不小心创建了具有相同 id 的两个元素时,让您的网站中断似乎并不是一种特别有效的方式来通知您出了问题。