使用id选择器有什么意义?

时间:2016-01-28 20:04:13

标签: css

我是CSS的新手,在了解了ID选择器之后,它们和类选择器之间的唯一区别是每个元素只能有一个特定的id,而多个元素可以共享相同的类名。但是这很简单:将元素命名为不会用于任何其他元素的类名。所以在这个意义上,似乎可以将一个类视为I.D。

我是CSS新手,所以我可能会在这里遗漏一些东西。在特定情况下,在类选择器上使用ID选择器有什么好处?

感谢。

1 个答案:

答案 0 :(得分:2)

以下是一些可以理解的原因:

直接关联。

您可以通过将ID添加到网址末尾来直接链接到网页上的特定元素。有关示例,请参阅此帖子:Link to an element within the current page

Javascript兼容性。

许多JS库利用了类和ID之间的差异。例如,它们将类视为元素数组,假设您要迭代该类的所有实例。另一方面,ID被假定为单数,并且您尝试实现的任何功能将仅查找单个实例。这具有轻微(几乎无法察觉)的性能优势,但如果使用不当也会破坏许多功能。

<强>特异性。

在网页上定位元素时,特异性始终会发挥作用。由于ID和类具有不同的权重,因此在尝试保持样式不会相互覆盖时,错误地使用它们会导致问题。有关详细信息,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity

浏览器兼容性。

虽然浏览器在符合现代CSS标准方面越来越好,但总会有怪癖。并非每个选择器都适用于每个浏览器,并且当您的用户使用旧版本的IE或随机构建的Safari访问您的网站时,某些CSS技巧可能会中断。话虽如此,无论如何,ID都将始终有效。这可能与您的具体情况无关,但可以帮助防止头痛。

最佳做法/可读性。

最重要的是IMO,是可读性方面。在查看另一个开发人员的代码时,我假设当我看到CSS中指定的类时,他们设置的任何样式都会影响页面的多个区域。这意味着我不应该在没有进一步研究的情况下改变事物。与此相反,如果我看到正在使用的ID,我可以假设对该特定样式的任何更改都只会影响该区域,并且对我来说不应该有任何意外。