x-y*_*uri 3 html html5 whitespace spaces trailing
html4说这个:
为了避免SGML换行规则的问题以及现有实现之间的不一致,作者不应该依赖用户代理在开始标记之后立即或在结束标记之前立即渲染空白.因此,作者,特别是创作工具,应该写:
<P>我们为订阅者提供免费的<A>技术支持</A>.</ P>
并不是:
<P>我们为订阅者提供免费的<A>技术支持</A>.</ P>
与此:
SGML(参见[ISO8879],第7.6.1节)指定必须忽略紧跟在开始标记之后的换行符,并且必须在结束标记之前立即换行.这适用于所有HTML元素,无例外.
必须以相同方式呈现以下两个HTML示例:
托马斯正在看电视.</ P>
<P>
托马斯在看电视.
</ P>那么必须有以下两个例子:
<A>我最喜欢的网站</A>
<A>
我最喜欢的网站
</A>
所以,不应该依赖它们被忽视.怎么样html5?
UPD或者让我们这样说:我可以将它们视为被忽视或有时它们是否重要(以某种方式表现出来)?在哪方面,如果有的话?
UPD嗯,我应该说我考虑过重构......?我试图让模板更具可读性,这就是让我思考它的原因.
空间是绝对不会在联标签忽略(即<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>
Run Code Online (Sandbox Code Playgroud)
如果你将CSS设置为这样的东西
a { text-decoration: underline; }
Run Code Online (Sandbox Code Playgroud)
你绝对可以看到差异.
有时换行会在内联标签中产生奇怪的结果,例如,如果您编写这样的代码,
<p>We offer free <a>
technical
support
</a> for subscribers.</p>
Run Code Online (Sandbox Code Playgroud)
它似乎忽略了第一个换行符,但不是最后一个换行符.
这是两个例子的小提琴:http://jsfiddle.net/Niffler/fnnanru2/
在块标记(即<p>,<h1>,<div>,...)位以及换行符在代码的开头或结尾应始终被忽略(即<p>test</p>看起来应当是一样的<p> test </p>).
而另一位用户在评论中写道,换行符通常会与空格相同.
而且,多个空格或换行符或其组合通常总结到一个空间.