HTML如何处理标记中的空格?

时间:2010-07-02 09:57:43

标签: html coding-style

我不是在讨论内容中的空格,而是代码本身。

我的HTML中有一堆验证错误,发现这是因为我在标记中遗漏了一个空格 -

<td class="col_title"colspan="2">

Line 1, Column 80: attributes construct error
Line 1, Column 80: Couldn't find end of Start Tag td line 1
Line 1, Column 80: Opening and ending tag mismatch: tr line 1 and td
Line 1, Column 80: Opening and ending tag mismatch: tbody line 1 and tr
Line 1, Column 80: Opening and ending tag mismatch: table line 1 and tbody
Line 1, Column 80: Opening and ending tag mismatch: div line 1 and table
Line 1, Column 80: Opening and ending tag mismatch: body line 1 and div
Line 1, Column 80: Opening and ending tag mismatch: html line 1 and body
Line 1, Column 80: Extra content at the end of the document

All were highlighting the following line (I was validating local HTML if it makes any difference)

…1.0 Transitional//EN"  "http://www.w3.**o**rg/TR/xhtml1/DTD/xhtml1-transitional.dt…

我认为这没关系,但W3C验证器另有说明。在它们之间添加空格修复了错误 -

<td class="col_title" colspan="2">

这意味着在编写HTML时必须格外小心,这样的错误真的很难找到。我正在寻找表格中缺少的封闭标签。

对于每个标记,HTML是否与白色空格相同?

2 个答案:

答案 0 :(得分:2)

W3C建议需要空格:

  

元素可能有关联   属性,称为属性,其中   可能有值(默认情况下,或设置为   作者或剧本)。属性/值   对出现在最后的“&gt;”之前的   元素的开始标记。任意数量的   (合法)属性值对,   由空格分隔,可能出现在   元素的开始标记。他们可能会出现   以任何顺序。

http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2

当然,浏览器应该修复他们找到的错误,这就是HTML正常工作的原因。但是,您应该尝试生成有效的HTML:定义有效HTML的呈现并且(或多或少)可预测,但无效HTML的呈现基本上是随机的; - )

答案 1 :(得分:2)

由于引号在HTML中是可选的,因此空格不可以。浏览器无法分辨值结束的位置和下一个属性的开始:

<td class=col_titlecolspan=2>

有些浏览器比其他浏览器更挑剔,而且HTML和XHTML之间存在差异。验证器是一个很好的工具,因为它比任何浏览器都更严格。如果它在那里工作,没有浏览器会理解语法。