文本行在元素之间的标记中断

时间:2016-09-09 14:55:15

标签: html text newline

我的html标记中存在实际换行符导致的错误。我试图找到支持我所看到的文档。这与<h4 class="condensed-title-wrap"> <span class="condensed-title">Here is the title text</span>&nbsp;<i class="icon-icon-navigation-mobile-arrow-right"></i> </h4> 或CSS无关,而是与实际标记中的换行符有关。基本上,这个:

<h4 class="condensed-title-wrap">
  <span class="condensed-title">Here is the title text</span>
  &nbsp;
  <i class="icon-icon-navigation-mobile-arrow-right"></i>
</h4>

渲染方式与此不同:

@php
switch (x) {
    case 1:
        //code to be executed
        break;
    default:
        //code to be executed
}
@endphp

我要求的是语言,也许是一些文件,这是真的。

1 个答案:

答案 0 :(得分:1)

不可见的回车和行末尾出现的换行计为空格(与&nbsp;之类的非破坏空格不同)。 HTML要求将某些空白序列压缩为单个空格字符。在第二个示例中,文本在&nbsp;之前的部分中断,其中包括前一个换行符和前导空格。

在规范的几个地方提到了这里引用了one of which

  

当用户代理要剥离并折叠字符串中的空格时,它就是   必须替换一个或多个连续空格字符的任何序列   在该字符串中使用单个U + 0020 SPACE字符,然后剥离   来自该字符串的前导和尾随空格。

在尝试将一对inline-block格式化元素并排放置时,通常会出现此问题,而不是在元素之间出现(通常为4个像素)间隙。

此代码产生了这样的差距:

<div>
  <span>left block</span>
  <span>right block</span>
</div>

虽然这段代码没有:

<div>
  <span>left block</span><span>
  right block</span>
</div>

差距的原因是一个span的结尾和下一个的开头之间的空白。该解决方案将空格从span元素之间移动到字符串的开头,在该字符串中忽略而不是压缩。