【问题标题】:Why shouldn't I use ID selectors in CSS? [closed]为什么我不应该在 CSS 中使用 ID 选择器? [关闭]
【发布时间】:2019-01-29 01:23:18
【问题描述】:

我对“不要在 CSS 中使用 ID 选择器”这一行感到震惊。这是真的吗?我发现很多帖子都写过这个。

  1. http://mattwilcox.net/archive/entry/id/1054/
  2. http://screwlewse.com/2010/07/dont-use-id-selectors-in-css/
  3. http://oli.jp/2011/ids/

我认为我们可以将 ID 用于选择器。

我还是想澄清一下。

【问题讨论】:

  • 你的问题/问题是?
  • 我觉得这个问题比较适合programmers.stackexchange
  • 是的,这是一个开放式“问题”,只会表达个人意见
  • @MikulGohil 如上所述,这个问题是开放式的,它会征求辩论/意见(看看你得到的答案:第一个是支持,第二个是反对等等。它不是建设性的)这违反了SO规则。阅读FAQ 了解更多信息。
  • @Archan Mishra 您出于这个原因“不同意”这一事实使这个问题变得开放。

标签: css css-selectors


【解决方案1】:

Id 选择器优先于其他类型的选择器。这会使使用不太具体的选择器添加新规则变得更加困难,从而导致特异性战争:http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html

【讨论】:

  • 这是最好的答案,IMO。特异性战争是一种代码味道。
  • 这是正确答案。
【解决方案2】:

我一直使用id 选择器。我知道哪些元素是唯一的,哪些不是,唯一元素的 id 选择器(在我看来)是最好的。

【讨论】:

  • 我不认为你的答案是正确的,因为你有一个独特的元素现在,你怎么能确保未来的需求可能不想要另一个元素的类似外观?
  • 一:我的大部分设计都是由我控制的(也就是我设定要求)。二:有不重复的元素(页面包装、页眉、页脚、主导航等)。我对所有这些都使用ID。即使我(出于某种非常奇怪的原因)想要使用与标题完全相同的样式来处理其他内容,然后我总是可以稍后将一个类添加到 css 定义中,并且仍然保持我的标题由一个 ID 定义。
  • 正如你自己所说的@scott,你定义了你自己的要求,这并不总是对所有人都是可能的......因此使用 ID 不是一个好的做法
  • 在某些情况下这可能不是一个好的做法,但笼统地说这根本不是好的做法是不正确的。如果您不使用包装器、页眉、页脚等,那么实际上,您可能在页面上没有任何唯一元素,因此使用 ID 是不明智的。
  • 只要在共享样式表中谨慎使用 id 选择器,我认为@ScottS 的方法非常好。在编写直接在页面上定义的 CSS 时,我通常使用 id 选择器。事实上,在“一次性”元素上使用 id 选择器(如特定页面上特定部分的包装器)实际上使标记更具可读性。它可以告诉未来的开发人员,一种样式仅用于非常小的上下文,并没有被广泛使用。
【解决方案3】:

不建议使用 ID 作为 CSS 选择器 因为如果页面中的另一个元素使用相同/相似的样式, 您将不得不再次编写相同的 CSS。

即使您现在没有多个具有该样式的元素,它也可能会在以后出现。 因此,始终建议使用类。

【讨论】:

  • 如果一个元素共享一个 ID,它将不会通过验证。你应该强调有效的 HTML。
  • 我不知道为什么这被否决了,我也不理解肖恩的评论。我认为他的观点很突出。第一段 - 如果页面中的另一个元素使用相同/相似的样式,则不能重用 ID。第二段 - 如果需求发生变化,您将不得不重构,而不是仅仅应用您首先编写的类。对我来说似乎是合法的。
  • 是的,@ShawnStrickland 的评论毫无意义。
猜你喜欢
  • 2021-12-01
  • 2019-12-04
  • 1970-01-01
  • 2015-09-15
  • 2010-12-25
  • 2023-01-13
  • 2018-07-25
  • 2013-04-26
相关资源
最近更新 更多