还有哪些其他理由可以谨慎使用 id?

What other justifications are there for using id's sparingly?

提问人:rze 提问时间:10/24/2015 最后编辑:rze 更新时间:10/24/2015 访问量:145

问:

虽然我不需要说服选择器应该谨慎使用,并且选择器应该主要用于应用 CSS,但我很难向我的小组项目的成员解释它。当我们作为一个小组开会检查每个人的 HTML 和 CSS 文件时,我注意到他们几乎对所有内容(包括非唯一元素)都使用了选择器。虽然我解释说,选择器应该只用于在CSS中设置非常独特的元素的样式,并且由于它们的可重用性,选择器应该用于将CSS应用于其他所有内容,但现在我试图记住其他原因。所以我的问题是,对非唯一元素使用选择器而不是选择器还有什么其他原因?idclassididclassclassid

HTML CSS 客户端

评论

1赞 John Gordon 10/24/2015
你的意思是你的同学主要使用id选择器而不是类选择器来应用CSS吗?或者他们给每个元素一个 id 属性?
0赞 rze 10/24/2015
@JohnGordon很抱歉造成混淆,我的意思是说他们使用 id 选择器而不是类选择器来应用 CSS。将编辑问题以进行更多澄清。
1赞 Dan 10/24/2015
就个人而言,我觉得你给出的理由就足够了。添加大量 id 选择器并不是一个好的风格,而且很快就会变得笨拙。特别是如果你不能进行更改,那么很难确保你改变了你想要的一切。
1赞 insertusernamehere 10/24/2015
关于这个问题的一些想法“不要在 CSS 选择器中使用 ID?”

答:

1赞 Josef Engelfrost 10/24/2015 #1

正如您提到的,s 的唯一性足以成为不将它们用作选择器的理由,但还有更多:id

一个元素可以有多个 es,但只能有一个 .您可能希望同一元素同时是 a 和 。如果您使用 JavaScript,则可以有一个类用于样式 (),另一个类用于脚本 ()。这样,您就可以在不破坏脚本的情况下更改列表。classid.news-article.breaking-news.unstyled-list.side-menu.roman-numerals

更糟糕的是,应用风格的独特性和更高的特异性相结合。如果你使用 s 进行样式设计,你肯定会陷入特定性竞赛中(特别是如果你需要随着时间的推移维护 CSS,情况可能就是这样)。idid