为什么浏览器会渲染  作为一个常规的空间角色?

Jon*_*der 5 html browser whitespace

请考虑以下HTML代码段:

<p>Space&nbsp;Test</p>
Run Code Online (Sandbox Code Playgroud)

当在网页和浏览器呈现的页面中使用此HTML时,浏览器在"Space"和"Test"之间实际呈现的字符是常规空格字符(U + 0020),而不是不间断的空格字符(U + 00A0).

(例如,可以使用Firefox扩展字符标识符来观察.)

我在Firefox 5,Internet Explorer 8和Chrome 12中试过这个; 所有都具有在渲染的网页上写出U + 0020而不是U + 00A0的相同行为,即使源文档包含&nbsp;而不是常规空格字符.

为什么浏览器会以这种方式呈现常规空格字符而不是不间断的空格字符?

小智 4

这是 Unicode 之前时代的遗迹,当时标准字符集中不存在 NBSP 字符。HTML 将&nbsp;转义序列定义为一个不应导致自动换行的空格。

  • 我通过 w3.org 挖掘 [HTML 3 规范](http://www.w3.org/MarkUp/html3/specialchars.html) 发现了这一点。 (2认同)