【问题标题】:are leading and trailing whitespaces ignored in html?html 中是否忽略了前导和尾随空格?
【发布时间】:2015-01-17 12:06:21
【问题描述】:

html4this

为了避免 SGML 换行规则的问题和现有实现之间的不一致,作者不应依赖用户代理在开始标记之后或结束标记之前立即呈现空白。因此,作者,尤其是创作工具,应该写:

我们为订阅者提供免费的技术支持

而不是:

我们为订阅者提供免费技术支持

this:

SGML(参见 [ISO8879],第 7.6.1 节)指定必须忽略紧跟在开始标记之后的换行符,就像紧接在结束标记之前的换行符一样。这适用于所有 HTML 元素,无一例外。

以下两个 HTML 示例必须以相同的方式呈现:

托马斯正在看电视。


托马斯正在看电视。

以下两个例子也是如此:

我最喜欢的网站


我最喜欢的网站

因此,不应依赖它们是否被忽略。 html5呢?

UPD 或者让我们这样说:我是否可以将它们视为被忽略或有时它们很重要(以一种或另一种方式表现出来)?有哪些方式(如果有)?

UPD 嗯,我应该说我考虑过重构...?我正在尝试使模板更具可读性,这就是让我想到它的原因。

【问题讨论】:

  • 问题的第一部分是关于空白,第二部分是关于换行符。苹果/橙子。
  • 不,换行符和空格在 HTML 标记中的呈现方式相同。
  • 让我们这样说:换行符是whitespaces in html

标签: html whitespace spaces trailing


【解决方案1】:

内联标签中的空格绝对不会被忽略(即<a><span><strong>,...),例如在这个例子中,

<p>We offer free <a>technical support</a> for subscribers.</p>
<p>We offer free<a> technical support </a>for subscribers.</p>

如果您将 CSS 设置为类似这样的内容

a { text-decoration: underline; }

你肯定能看出区别。

有时换行会在内联标签中产生奇怪的结果,例如如果你这样写代码,

<p>We offer free <a>
technical
support
</a> for subscribers.</p>

它似乎忽略了第一个换行符,但不是最后一个。

以下是两个示例的小提琴:http://jsfiddle.net/Niffler/fnnanru2/

在块标签内(即&lt;p&gt;&lt;h1&gt;&lt;div&gt;、...)标签开头或结尾处的空格以及换行符应始终被忽略(即&lt;p&gt;test&lt;/p&gt;应该看起来像同&lt;p&gt; test &lt;/p&gt;)。

正如另一位用户在评论中所写,换行符通常会呈现为空格。

此外,多个空格或换行符或其组合通常汇总为一个空格。

【讨论】:

  • Sometimes line breaks can produce weird results fiddle 更好地说明问题 Within block tags (i.e. &lt;p&gt;, &lt;h1&gt;, &lt;div&gt;, ...) spaces as well as line breaks at the beginning or end of the tags should always be ignored 说谁?你有任何证明链接吗?
【解决方案2】:

浏览器应该忽略空格和浏览器忽略空格是两个完全不同的问题。

您不应该在开始标记之后放置空格,即使它(有时)有效。由于这方面的文档,浏览器可能会更改以遵守该规则,恕不另行通知。

它们不应该以相同的方式呈现,但目前大多数浏览器呈现

&lt;P&gt;We offer free&lt;a&gt; technical support &lt;/a&gt;for subscribers.&lt;/P&gt;

&lt;P&gt;We offer free &lt;a&gt;technical support&lt;/a&gt; for subscribers.&lt;/P&gt;

同样的。

记住:所有这些都可能在没有通知的情况下发生变化,所以我一定会遵守文档的规则。

【讨论】:

  • 我相信你选择了错误的测试用例,请在my fiddle 抢购。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
相关资源
最近更新 更多