我不是在讨论内容中的空格,而是代码本身。
我的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是否与白色空格相同?
答案 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之间存在差异。验证器是一个很好的工具,因为它比任何浏览器都更严格。如果它在那里工作,没有浏览器会理解语法。