空class
属性是否为以下格式的有效HTML:
<p class="">something</p>
<p class>something</p>
我发现this question类似,但具体询问自定义数据属性。
答案 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)
类属性应包含值。没有价值它不是有效的。但它在渲染时没有显示出任何影响。