HTML元素的ID属性是否允许为空?
<div id=""></div>
我正在使用一个模板,其中元素的ID由一个可能并不总是有值的变量设置,我想知道这是否会导致任何无法预料的问题。
编辑:“变量”实际上是Django模板中的可编辑区域(块)。这意味着我不能在其上放置任何条件逻辑。
<div id="{% block id %}{% endblock %}">
而不是:
<div {% block id %}{% endblock %}>
必须在子模板中继承为:
{% block id %}id="whatever"{% endblock %}
答案 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也应该是唯一的。因此,如果您有多个,那么它也会违反该规则。