示例:http://jsfiddle.net/9e81ytwg/
<div>Foo <span> Bar </span> Baz</div>
*{font-size:30px;font-family:monospace}
span{background:red;}
在旧版浏览器中呈现:
在现代浏览器中呈现:
为什么会有这种差异?为什么与几个月前的工作方式不同?
渲染是否有特定的规格/点?我曾希望它能像旧版浏览器一样工作。还是一个错误?
http://www.w3.org/TR/CSS2/text.html#white-space-model(重点是我的):
如果“空白”设置为“正常”,“ nowrap”或“前行”
- 每个制表符(U + 0009)都转换为空格(U + 0020)
- 另一个空格(U + 0020)之后的任何空格(U + 0020)-甚至是inline之前的空格,如果该空格还将'white-space'设置为'normal','nowrap'或'pre-line'-删除。
因此,您看到的行为是完全正确的:所有空格都从前向后折叠,因此前一个空格不是红色的(它折叠到“内联之前的空间”中),而尾随的是(其他空格都折叠了)进去)。
我不知道您指的是哪个“旧版浏览器”,但很可能这是其过程中某个引擎的错误修正,因为这种标准已经存在多年了。
更新:标准在2008年CSS2上次更新时没有明确规定,在2011 CSS 2.1最终草案中也没有明确规定。因此,浏览器在如何处理方面并不统一并不奇怪。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句