今天,我正在将具有一些过时属性的页面转换为对 XHTML 更友好,并遇到了锚标记的主题。具体来说:
<a name="someName"></a>
在将锚标记转换为 之后<a id="someName"></a>
,我的 IDE 给了我一些关于不要在我的锚标记中使用重复 ID 的友好建议。事实证明,W3 也是如此。
id 和 name 属性共享相同的名称空间。这意味着它们不能在同一文档中同时定义具有相同名称的锚点。允许使用这两个属性为以下元素指定元素的唯一标识符:A、APPLET、FORM、FRAME、IFRAME、IMG 和 MAP。当两个属性都用于单个元素时,它们的值必须相同。
尽管有重复,该页面仍然可以正常工作,没有任何行为异常。
页面逻辑保证只有一个 HTML 元素使用给定的名称或 ID 呈现,因此不#someName
存在重复的 href。
考虑到这一点:
上述用例是否仍然违反 W3C 使用重复名称/ID 的准则?
将页面转换为使用唯一 ID 需要付出很大的努力,但这样做可能会有好处。我对此很陌生,所以如果我遗漏了一些纯粹的哲学或明显的东西,我深表歉意。