当前位置:  开发笔记 > 前端 > 正文

一个html元素可以有多个ID吗?

如何解决《一个html元素可以有多个ID吗?》经验,为你挑选了6个好方法。

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

我的问题是,对于给定的元素,我可以为它分配多个ID吗?

我意识到我只需使用一个类就可以轻松解决问题.我只是好奇以这种方式使用id.



1> timmow..:

不.来自XHTML 1.0 Spec

在XML中,片段标识符的类型为ID,每个元素只能有一个ID类型的属性.因此,在XHTML 1.0中,id属性被定义为ID类型.为了确保XHTML 1.0文档是结构良好的XML文档,在上面列出的元素上定义片段标识符时,XHTML 1.0文档必须使用id属性.有关在将XHTML文档作为媒体类型text/html提供时确保此类锚点向后兼容的信息,请参阅HTML兼容性指南.


"片段标识符的类型为ID,每个元素只能有一个ID类型的属性." 它在这里说,单个属性和属性与属性的值不同.它没有说明在任何上下文中属性值不应该通过空格分隔或任何字符分离来假定多值.虽然在规范中它表示为了向后兼容,它不能在属性值中包含空格字符片段标识符(w3.org/TR/xhtml1/#guidelines)因此,如果要表达多值ID,则必须以不同方式表达

2> user12344455..:

与其他人所说的相反,正确答案是肯定的

该选择器规格为这个非常明确:

如果一个元素有多个ID属性,那么为了ID选择器的目的,所有这些属性都必须被视为该元素的ID.可以使用xml:id,DOM3 Core,XML DTD和特定于命名空间的混合来达到这种情况.知识.


编辑

只是为了澄清:是的,XHTML元素可以有多个id,例如

但是id不可能使用以空格分隔的列表为同一属性分配多个ID .


@tvanfosson:令人惊讶的是,HTML4规范并没有说每个元素最多只能有一个id.如果你看一下[HTML5规范](http://dev.w3.org/html5/spec-LC/elements.html#the-id-attribute),你甚至会发现`这个规范并不排除具有多个ID的元素,如果其他机制(例如DOM Core方法)可以以不与id属性冲突的方式设置元素的ID.(对应于CSS规范)
很好的答案 - 现在这就是把猫放在鸽子中间.
当我回答这个问题时,我赞同这个答案:"**可以**你**为一个元素分配**多个ID吗?" 但是我应该补充说,这超出了单纯的规格; 如接受的答案所示,当谈到HTML/XHTML本身时,规范说你可以*仅*使用`id`属性分配ID.为了澄清,`xml:id`属性(实际上,默认命名空间之外的任何属性)在XHTML中无效.但是,正如您从HTML5规范中引用的那样,这不会导致`xml:id ="bar"`无声地失败; 它仍然会在这个元素中添加`bar` ID,允许它匹配`#bar`.
不幸的是,这不是CSS规范.对于HTML/XHTML,您必须查看该规范,并且规范明确指出每个元素最多只能有一个id,并且该ID必须在页面上是唯一的:http://www.w3.org/TR/ html401/struct/global.html#h-7.5.2(适用于HTML 4)

3> acrosman..:

虽然从W3C定义的HTML 4似乎并没有明确涵盖你的提问,该名称和id属性的定义说,在标识中没有空格:

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(" - "),下划线("_") ,冒号(":")和句号(".").



4> Ross..:

我的理解一直是:

ID是一次性使用,仅适用于一个元素......

每个都被归为唯一标识符(仅)一个元素.

课程可以多次使用 ......

因此,它们可以应用于多个元素,并且类似地但不同,每个元素可以有多个类(即多个类).


我不认为这有资格成为问题的答案.问题是:"多个ID可以用于单个元素吗?"
@kevin这个答案假设OP面临XY问题,无论出于何种原因,它肯定可以帮助那些试图通过ID实现类行为的人.

5> tvanfosson..:

不是.每个DOM元素(如果有ID)都有一个唯一的ID.您可以使用以下内容进行近似:

然后使用导航来获得你真正想要的东西.

如果您只是想申请样式,类名更好.


不是我.:-)而且我不确定你打破验证的意思是什么?div和span的id是不同的(封闭与封闭),因此重复的id不存在问题.也许有些人没有仔细阅读.
抢劫银行是非法的,软件问题绝不是非法的.这又是旧的虚拟现实与实际现实问题:-P
这个答案有什么不合法之处?有人可以解释一下投票吗?

6> AmbroseChape..:

每个元素只能有一个ID,但您确实可以拥有多个类.但是没有多个类属性,将多个类值放入一个属性中.

是完全合法的.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有