猿问
下载APP

为什么HTML要求多个空格在浏览器中显示为单个空格?

为什么HTML要求多个空格在浏览器中显示为单个空格?

我早就认识到HTML文件中的任何一组空格都只会显示为一个空格。例如,这个:

<p>Hello.        Hello. Hello. Hello.                       Hello.</p>

显示为:

你好。你好。你好。你好。你好。

这非常好,就像你需要多个预格式化文本空间一样,你可以使用<pre>标签。但是原因是什么?更准确地说,为什么这是HTML规范?


123456qqq
浏览 50回答 3
3回答

繁星coding

空格在HTML中压缩,因为HTML的格式化方式和渲染方式之间存在区别。考虑这样的页面:<html> &nbsp;&nbsp;&nbsp;&nbsp;<body> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a&nbsp;href="mylink">A&nbsp;link</a> &nbsp;&nbsp;&nbsp;&nbsp;</body></html>例如,如果HTML使用空格缩进,则链接前面会有几个空格。

拉丁的传说

试图解决“为什么”可能是因为HTML基于SGML,它已经指定了这种方式。它反过来基于60年代早期的GML。白色空间处理的原因很可能是因为数据一次被输入一张“卡片”,这可能导致不希望的句子和段落分解。旧GML的一个不同之处在于它指定句子之间必须有两个空格(如旧的打字机规则),这些空格可能已经建立了空格独立于标记的先行词。

收到一只叮咚

正如其他人所说,它在HTML规范中。如果要在输出中保留空格,可以使用<pre>标记:<pre>This&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text&nbsp;has&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extra&nbsp;spaces and &nbsp;&nbsp;&nbsp;&nbsp;newlines</pre>但这通常也会以不同的字体显示文本。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答