3

html4说:_

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

<P>我们为订阅者提供免费的<A>技术支持</A>。</P>

并不是:

<P>我们为订阅者提供免费<A>技术支持</A>。</P>

:_

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

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

<P>托马斯正在看电视。</P>

<P>
托马斯正在看电视。
</P>

以下两个例子也必须如此:

<A>我最喜欢的网站</A>

<A>
我最喜欢的网站
</A>

因此,不应依赖它们是否被忽略。怎么样html5

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

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

4

2 回答 2

6

内联标签中的空格绝对不会被忽略(即<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/

在块标签(即<p>, <h1>, <div>, ...)内的空格以及标签开头或结尾的换行符应始终被忽略(即<p>test</p>看起来应该与 相同<p> test </p>)。

正如另一位用户在评论中所写的那样,换行符通常会呈现为与空格相同的内容。

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

于 2014-11-19T20:30:27.070 回答
0

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

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

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

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

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

相同。

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

于 2014-11-19T20:13:56.870 回答