我知道在HTML/XHTML页面中id必须是唯一的。

对于一个给定的元素,我可以给它分配多个id吗?

<div id="nested_element_123 task_123"></div>

我意识到我有一个简单的解决方案,只需使用一个类。我只是好奇以这种方式使用id。


当前回答

任何分配给div元素的ID都是唯一的。 但是,你可以在一个div元素下分配多个id,而不是“分配给”一个div元素。 在这种情况下,您必须将这些id表示为<span></span> IDs。

例如,您希望同一HTML页面中的两个链接指向页面中的相同div元素。

这两个不同的链接

<p><a href="#exponentialEquationsCalculator">Exponential Equations</a></p>

<p><a href="#logarithmicExpressionsCalculator"><Logarithmic Expressions</a></p>

指向页面的同一部分

<!-- Exponential / Logarithmic Equations Calculator -->
<div class="w3-container w3-card white w3-margin-bottom">
   <span id="exponentialEquationsCalculator"></span>
   <span id="logarithmicEquationsCalculator"></span>
</div>

其他回答

与别人说的相反,正确的答案是肯定的

Selectors规范对此非常清楚:

如果一个元素有多个ID属性,为了ID选择器的目的,所有这些属性都必须被视为该元素的ID。这种情况可以混合使用xml:id、DOM3 Core、xml dtd和特定于名称空间的知识来实现。


Edit

澄清一下:是的,一个XHTML元素可以有多个id,例如:

<p id="foo" xml:id="bar">

但是使用空格分隔的列表将多个id分配给同一个id属性是不可能的。

Nay.

从3.2.3.1的id属性:

不能包含空格。

id="a b" <——查找该VaLuE中的空格字符。

也就是说,可以对多个id进行样式化。但如果您遵循规范,答案是否定的。

每个元素只能有一个ID,但确实可以有多个类。但不要有多个类属性;将多个类值放入一个属性中。

<div id="foo" class="bar baz bax">

完全合法。

No.

话虽如此,没有什么能阻止你这么做。但是不同的浏览器会产生不一致的行为。不要这样做。每个元素一个ID。

如果需要对一个元素进行多个赋值,请使用classes(用空格分隔)。

这很有趣,但据我所知,答案肯定是否定的。我不明白为什么您需要一个嵌套ID,因为您通常会与具有相同嵌套ID的另一个元素交叉。如果你不做,那就没有意义,如果你做了,那也没什么意义。