【发布时间】:2017-05-07 19:10:12
【问题描述】:
通过 class/id 或自定义属性识别 HTML 元素有什么区别吗?
我的意思是,例如,如果我有一个菜单并且我想更改当前(活动)li 元素的颜色,我目前使用这个:
<style>
li[active]{color:red}
</style>
<ul>
<li active>...</li>
<li>...</li>
</ul>
但最常见的用法是:
<style>
li.active{color:red}
</style>
<ul>
<li class="active">...</li>
<li>...</li>
</ul>
那么它们之间有什么区别呢?我的意思是,他们有相同的结果,但为什么人们不使用我写的第一种方法呢?这要简单得多,并且可以生成更清晰的 HTML 源代码。
仅针对那些不明白问题的人...我写的第一个 sn-p 是标识一个元素 BY HTML5 ATTRIBUTE。第二个 sn-p 是标识一个元素 BY CLASS。
那么问题又来了:HTML5 ATTRIBUTE 和 CLASS OR ID NAME 识别 HTML 元素有什么区别?
【问题讨论】:
-
简而言之,id have a higher specificity (are more important) than classes 和 id 在 HTML 页面上是唯一的。阅读上面的链接以了解更多信息。
-
但是您的问题是具体询问 id 和 class 之间的区别,但是您说您知道区别...那么问题的重点是什么?
:-/ -
@Kano OP 反复使用术语“id”,它是 HTML 基础结构特定部分的特定术语。仅仅因为 OP 打算要求别的东西,我们不能神奇地知道 OP 所写的内容。
-
鲍勃,我已经编辑了标题以更好地满足您的实际要求。我自己没有结束你的问题,问题是通过选民的相互共识来结束的。我已提名您的问题重新开放。重要的是要非常清楚您的要求是什么,以避免这些误解。
:-) -
@Bob 在我们等待重新提出问题时,您会得到答案 - 来自 W3C 规范:
Custom data attributes are intended to store custom data private to the page or application, for which there are no more appropriate attributes or elements.(link)。综上所述-某些属性具有某些意图。您可以应用自定义属性,但随后您还必须重新发明与 classList API 相关的所有其他内容。