Css:为什么不使用ID,这是紧密耦合的另一个原因

时间:2011-06-16 17:46:17

标签: css css-selectors

我有一个页面,其中有一个带有id的标签,但是一个普通的css类,就像这个:

<div id='stack_overflow_example' class='title'> ... </div>

众所周知,这个id必须在该页面上是唯一的,我只是在css下轻松找到它(例如,可用于ajax请求,但这不是情况)。

阅读css定位器(选择器),我发现我不应该使用ID作为css选择器,因为这会将我的css代码与我的html代码紧密结合。

好的,我同意。但是选项是在该标记上放置一个唯一的css类,然后在css代码上使用它。

为什么这个选项与第一个选项没有紧密耦合?

任何人都可以提出任何其他原因而不是我刚才想到的:“因为在第二个选项上,您也可以在其他'独特'标签上重复使用'唯一'css。”

已编辑:考虑到表现原因,我的朋友只是想(我同意):

  • 使用'id'标记,'搜索'将遍历所有html代码,直到找到第一次使用的ID,然后停止,因为'id'是unique
  • 使用'unique class','search'将遍历所有html代码,直到EOF,因为许多元素都可以拥有'unique class'

不是,在边缘结束时,性能故障使选项1听起来更好吗?

2 个答案:

答案 0 :(得分:2)

您可以在每个页面中为任意一个元素应用一个唯一ID。 哪个元素具有ID并不重要,只要每页只有一个。课程没有这样的规则。因此,你所指的耦合问题(即CSS有一个非常严格的假设,即具有特定ID的元素在它应用的任何HTML页面上提供相同的表示和目的)。

老实说,我不太关心耦合( EDIT:或性能)问题。如果我有一个ID,并且我希望将的样式应用于该ID,我会选择该ID。如果元素与其他元素共享该类,并且我想将样式应用于该类的所有元素,我将按该类选择。

答案 1 :(得分:0)

听起来你或多或少正确地理解它。虽然imo有些情况下在css选择器中使用ID是正确的,但是类的优点不仅在于它可以应用于页面上的多个元素,而且你可以拥有每个元素不止一个类,这使它们更容易重用。 (想象一下我想重用一些当前通过ID选择器应用的样式规则的情况,但是我想要应用这些规则的元素已经从另一个ID选择器中获取了一组样式规则...不能给那个元素两个ID。对于类,你不会遇到这个)