HTML标记中的ID是否为空?

时间:2011-06-30 13:59:03

标签: html

HTML元素的ID属性是否允许为空?

<div id=""></div>

我正在使用一个模板,其中元素的ID由一个可能并不总是有值的变量设置,我想知道这是否会导致任何无法预料的问题。

编辑:“变量”实际上是Django模板中的可编辑区域(块)。这意味着我不能在其上放置任何条件逻辑。

<div id="{% block id %}{% endblock %}">

而不是:

<div {% block id %}{% endblock %}>

必须在子模板中继承为:

{% block id %}id="whatever"{% endblock %}

4 个答案:

答案 0 :(得分:22)

根据W3C:

  

ID和NAME令牌必须以a开头   信([A-Za-z]),可以遵循   任意数量的字母,数字   ([0-9]),连字符(“ - ”),下划线   (“_”),冒号(“:”)和句号   ( “”)。

(资料来源:Basic HTML data types

这表示根据上述定义,属性的空白值无效。

尝试针对空ID属性进行验证将返回以下内容:

  

属性值的语法没有   符合声明的值

     

<div id="">something</div>

     

包含的属性的值   一些不被允许的东西   该类型的指定语法   属性。例如,   “selected”属性必须是   最小化为“选中”或拼写出来   完整的“selected =”选中“”;该   变种“selected =”“”是不允许的。

答案 1 :(得分:4)

即使没有浏览器会在空ID上崩溃,如果你想生成有效的HTML,你应该生成假的ID和不同的内容,比如前缀+计数器。

答案 2 :(得分:1)

我最初不会将其设置为空白,只是让脚本(或者表示您插入ID)将属性附加到div。这样你的代码就会验证,如果这对你来说意味着什么。

空白属性无效,但没有属性 有效。它应该没有任何问题,只需确保您保持您的ID唯一。不过,我相信你知道的。

答案 3 :(得分:1)

它不会验证为有效文件。

W3验证器会给出类似的错误:属性值的语法不符合声明的值

id也应该是唯一的。因此,如果您有多个,那么它也会违反该规则。