【问题标题】:White space inside XML/HTML tagsXML/HTML 标记内的空白
【发布时间】:2011-03-19 21:02:16
【问题描述】:

我知道如何在 XML 和 HTML 的文本节点中处理空白,但我不确定标签元素本身内部的空白。显然,标签内部使用空格来分隔属性,但是在''之前有空格是否有效?

例如:

<  foo  >
< /foo >

甚至:

<foo>
< /  foo >

这些标签是有效的 XML 吗?假设它们是实际的 HTML 标记名称,那么 HTML 呢?

【问题讨论】:

    标签: html xml tags


    【解决方案1】:

    specification (section 3.1 Start-tags, end-tags, and empty-element tags) 表示'&lt;' 和标签名称之间、'&lt;/' 和标签名称之间或 '/&gt;' 内部没有空格。不过,您可以在标签名称后添加空格:

    <foo            >
    </foo        >
    <bar
    />
    

    【讨论】:

    • 然后将长 HTML 标签分成单独的行是否有效?例如:&lt;a heref="/something/" (newline, indent) title="something"&gt; (newline) &lt;/a&gt;——例如在长标签的情况下,里面包含PHP代码,使其更具可读性。
    • @fakaff:是的,这是有效的。换行符、制表符和空格都是空白字符,您可以在标签名称之后和属性之间(甚至在属性中的= 周围)有任意多的空白。
    【解决方案2】:

    &lt;//&gt; 是标记,因此两个字符之间的空格将是语法错误。和Guffa pointed out 一样,开始标记和名称之间不允许有空格。但是您可以在元素标记和结束 &gt;(或 /&gt;) 标记之间添加空格。

    EDIT 以反映 Guffa 对 XML 规范的正确引用。

    【讨论】:

      【解决方案3】:

      HTML[5] 标准似乎与 Guffa 所描述的 XML 标准完全一致...

      http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags

      【讨论】:

        【解决方案4】:

        您不能以空格开头,但可以(可选)以一个结尾(在第二个尖括号之前,即关闭第一个标签)。

        【讨论】:

        • 这个答案对现有答案没有任何增加。
        • @Pyves 你的评论也没有;)
        猜你喜欢
        • 2014-07-16
        • 2020-03-05
        • 2023-01-19
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        • 2012-04-12
        • 1970-01-01
        相关资源
        最近更新 更多