浏览器何时在内联元素中渲染空格?

时间:2018-04-17 11:24:00

标签: html css



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;
&#13;
&#13;

在上面的代码片段中,空格仅在&#34; aa&#34;之后显示。和&#34; dd&#34;,以及&#34; cc&#34;。为什么在&#34; aa&#34;之前没有显示任何空格?和&#34; dd&#34;或者周围&#34; ee&#34;?这是否记录在任何规范中?

1 个答案:

答案 0 :(得分:1)

section 16.6.1 of the CSS2 spec中介绍了这一点。那里有很多单词,但重要的是这里:

  

在另一个空格(U + 0020)之后的任何空间(U + 0020) - 即使是内联之前的空格,如果该空间也将“白色空间”设置为“正常”,“现在”或“预先行” ' - 被删除。

这意味着空格折叠不会考虑打开或关闭标记:

  1. <span> cc </span><span> dd </span>中,“dd”之前的空格被删除(折叠),只留下“cc”之后的空格。
  2. <span> dd </span><span> ee </span>中,“ee”之前的空格被删除,只留下“dd”之后的空格。
  3. 由于元素中没有空格包含“bb”,“aa”之后和“cc”之前的空格不受影响。

    以下步骤适用于该行的开头和结尾:

      

    每条线都布置好了,

         
        
    1. 如果一行开头的空格(U + 0020)将“white-space”设置为“normal”,“nowrap”或“pre-line”,则会将其删除。
    2.   

    这就是删除“aa”之前的空格的原因。

      
        
    1. 如果一行末尾的空格(U + 0020)将“空格”设置为“正常”,“现在”或“预行”,则也会将其删除。
    2.   

    这就是删除“ee”之后的空格的原因。