我有一个页面,其中有一个带有id
的标签,但是一个普通的css类,就像这个:
<div id='stack_overflow_example' class='title'> ... </div>
众所周知,这个id
必须在该页面上是唯一的,我只是在css下轻松找到它(例如,可用于ajax请求,但这不是情况)。
阅读css定位器(选择器),我发现我不应该使用ID作为css选择器,因为这会将我的css代码与我的html代码紧密结合。
好的,我同意。但是选项是在该标记上放置一个唯一的css类,然后在css代码上使用它。
为什么这个选项与第一个选项没有紧密耦合?
任何人都可以提出任何其他原因而不是我刚才想到的:“因为在第二个选项上,您也可以在其他'独特'标签上重复使用'唯一'css。”
已编辑:考虑到表现原因,我的朋友只是想(我同意):
unique
不是,在边缘结束时,性能故障使选项1听起来更好吗?
答案 0 :(得分:2)
您可以在每个页面中为任意一个元素应用一个唯一ID。 哪个元素具有ID并不重要,只要每页只有一个。课程没有这样的规则。因此,你所指的耦合问题(即CSS有一个非常严格的假设,即具有特定ID的元素在它应用的任何HTML页面上提供相同的表示和目的)。
老实说,我不太关心耦合( EDIT:或性能)问题。如果我有一个ID,并且我希望将仅的样式应用于该ID,我会选择该ID。如果元素与其他元素共享该类,并且我想将样式应用于该类的所有元素,我将按该类选择。
答案 1 :(得分:0)
听起来你或多或少正确地理解它。虽然imo有些情况下在css选择器中使用ID是正确的,但是类的优点不仅在于它可以应用于页面上的多个元素,而且你可以拥有每个元素不止一个类,这使它们更容易重用。 (想象一下我想重用一些当前通过ID选择器应用的样式规则的情况,但是我想要应用这些规则的元素已经从另一个ID选择器中获取了一组样式规则...不能给那个元素两个ID。对于类,你不会遇到这个)