【发布时间】:2011-03-19 21:02:16
【问题描述】:
我知道如何在 XML 和 HTML 的文本节点中处理空白,但我不确定标签元素本身内部的空白。显然,标签内部使用空格来分隔属性,但是在''之前有空格是否有效?
例如:
< foo >
< /foo >
甚至:
<foo>
< / foo >
这些标签是有效的 XML 吗?假设它们是实际的 HTML 标记名称,那么 HTML 呢?
【问题讨论】:
我知道如何在 XML 和 HTML 的文本节点中处理空白,但我不确定标签元素本身内部的空白。显然,标签内部使用空格来分隔属性,但是在''之前有空格是否有效?
例如:
< foo >
< /foo >
甚至:
<foo>
< / foo >
这些标签是有效的 XML 吗?假设它们是实际的 HTML 标记名称,那么 HTML 呢?
【问题讨论】:
specification (section 3.1 Start-tags, end-tags, and empty-element tags) 表示'<' 和标签名称之间、'</' 和标签名称之间或 '/>' 内部没有空格。不过,您可以在标签名称后添加空格:
<foo >
</foo >
<bar
/>
【讨论】:
<a heref="/something/" (newline, indent) title="something"> (newline) </a>——例如在长标签的情况下,里面包含PHP代码,使其更具可读性。
= 周围)有任意多的空白。
</ 和 /> 是标记,因此两个字符之间的空格将是语法错误。和Guffa pointed out 一样,开始标记和名称之间不允许有空格。但是您可以在元素标记和结束 >(或 />) 标记之间添加空格。
EDIT 以反映 Guffa 对 XML 规范的正确引用。
【讨论】:
HTML[5] 标准似乎与 Guffa 所描述的 XML 标准完全一致...
http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags
【讨论】:
您不能以空格开头,但可以(可选)以一个结尾(在第二个尖括号之前,即关闭第一个标签)。
【讨论】: