空类属性是否有效HTML?

时间:2015-06-10 06:39:32

标签: html5

class属性是否为以下格式的有效HTML:

<p class="">something</p>
<p class>something</p>

我发现this question类似,但具体询问自定义数据属性。

4 个答案:

答案 0 :(得分:17)

在查看其他答案中提到的规范后,我发现实际上已经回答了提出的问题的部分。

<p class>是不允许的

空属性语法上的specification on attributes部分3.2.3.1声明如下:

  

空属性是省略值的属性。这是用于指定具有空值的属性的语法简写,通常用于布尔属性。此语法可以在HTML语法中使用,但不能在XHTML语法中使用。

     

(...)

     

此语法仅允许用于布尔属性。

看到description of the class attribute(显然)没有提到它是一个布尔属性,不允许省略该值。

<p class=""> 允许

the section on class我们了解到:

  

每个HTML元素都可以指定一个类属性。

     

如果指定了属性,则该属性的值必须是一组以空格分隔的标记,表示该元素所属的各种类。

以及space-seperated tokens的定义:

  

一组空格分隔的标记是一个包含零个或多个单词(称为标记)的字符串,由一个或多个空格字符分隔,其中单词由一个或多个字符组成,其中没有一个是空格字符。

我们可以得出结论,属性值实际上可以是空的(即包含零令牌)。

答案 1 :(得分:1)

从HTML5参考页面,3.2.3属性:

  

元素可能具有用于指定有关它们的其他信息的属性。某些属性是全局定义的,可以在任何HTML元素上使用,而其他属性仅针对特定元素定义。每个属性都必须具有用于标识它的属性名称。每个属性还具有关联的属性值,根据属性的定义,该属性值可以表示几种不同类型中的一种。每个属性的允许语法取决于给定的值。

所以回答你的问题,

无效:

<p class>

有效(空值)

<p class="">

请参阅http://dev.w3.org/html5/html-author/有关您需要的HTML5的所有参考资料。

答案 2 :(得分:0)

没有任何价值不会使其失效。我已在http://validator.w3.org/#validate_by_input

中对其进行了测试

将此代码放在那里并测试:

mvn install -P profile2,!profile1

如果没有引号,只会为布尔属性(例如<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div class>Validiity <input type="text" disabled> </div> </body> </html> disabled

起草属性名称
  

许多属性是布尔属性。元素上存在布尔属性表示真值,缺少属性表示假值。

更多信息:https://html.spec.whatwg.org/#boolean-attributes

阅读布尔属性讨论的这个Q / A - What does it mean in HTML 5 when an attribute is a boolean attribute?

答案 3 :(得分:-1)

属性应包含值。没有价值它不是有效的。但它在渲染时没有显示出任何影响。