span {
font-size: 300%;
border: 1px solid red;
}

<div>
<span> aa </span><span>bb</span><span> cc </span><span> dd </span><span> ee </span>
</div>
&#13;
在上面的代码片段中,空格仅在&#34; aa&#34;之后显示。和&#34; dd&#34;,以及&#34; cc&#34;。为什么在&#34; aa&#34;之前没有显示任何空格?和&#34; dd&#34;或者周围&#34; ee&#34;?这是否记录在任何规范中?
答案 0 :(得分:1)
section 16.6.1 of the CSS2 spec中介绍了这一点。那里有很多单词,但重要的是这里:
在另一个空格(U + 0020)之后的任何空间(U + 0020) - 即使是内联之前的空格,如果该空间也将“白色空间”设置为“正常”,“现在”或“预先行” ' - 被删除。
这意味着空格折叠不会考虑打开或关闭标记:
<span> cc </span><span> dd </span>
中,“dd”之前的空格被删除(折叠),只留下“cc”之后的空格。<span> dd </span><span> ee </span>
中,“ee”之前的空格被删除,只留下“dd”之后的空格。由于元素中没有空格包含“bb”,“aa”之后和“cc”之前的空格不受影响。
以下步骤适用于该行的开头和结尾:
每条线都布置好了,
- 如果一行开头的空格(U + 0020)将“white-space”设置为“normal”,“nowrap”或“pre-line”,则会将其删除。
醇>
这就是删除“aa”之前的空格的原因。
- 如果一行末尾的空格(U + 0020)将“空格”设置为“正常”,“现在”或“预行”,则也会将其删除。
醇>
这就是删除“ee”之后的空格的原因。