当属性具有值并且引用了这些值时,HTML通常允许属性之间没有空格。
示例(Reference/Source):
在HTML文档中,不需要属性之间的空格。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>no attribute space</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p class="CLASS"title='TITLE'></p>
</body>
</html>
见第三行:
<p class="CLASS"title='TITLE'></p>
^^
现在使用这样的HTML块将doctype更改为HTML 5(<!DOCTYPE HTML>
),使experimental W3C HTML 5 conformance checker完全错误地告诉我:
验证输出:1错误
错误第9行,第22列:属性之间没有空格。
<p class="CLASS"title='TITLE'></p> ^
所以我认为HTML 5向后兼容浏览器在现实中处理HTML的方式和浏览器AFAIK处理这个问题。所以我至少有点困惑。我也有问题破解(有些不必要的)编译的HTML 5规范在这一点上是精确的,因为我找到了(W3C再次,见http://www.w3.org/TR/html-markup/syntax.html#syntax-attributes)它不是说这是(可能也不一定)是一个错误。
答案 0 :(得分:9)
您正在阅读已停产的非规范性参考文献。如果你看一下规范中start tag的定义(这是规范性的),它会说:
然后,开始标记可以具有多个属性,其语法如下所述。 属性必须通过一个或多个空格字符分隔。
所以我认为HTML 5向后兼容浏览器在现实中如何处理HTML以及浏览器AFAIK处理这个问题。
与现实世界标记兼容是一个设计目标,但许多事情已经过时,遗漏属性之间的空间几乎不会故意发生。
答案 1 :(得分:1)
可选地,一个或多个属性,每个属性必须以 一个或多个空格字符。
答案 2 :(得分:-2)
使用W3C Official HTML Validator,如果您使用HTML5 Doctype,则在属性之间没有空格会被检查为错误:
<!DOCTYPE html>
输出消息如下:
第9行,第23栏:属性之间没有空格。