【问题标题】:Prevent white space between selected text lines防止所选文本行之间出现空白
【发布时间】:2018-12-06 09:25:59
【问题描述】:

为什么当用户在单个元素中选择多行文本时,选择背景中没有间隙,但是如果我将每一行放在单独的元素中,就会出现白线?

考虑一下这个sn-p:

.line {
  font-family: 'Courier';
  font-size: 14px;
  line-height: 17px;
  white-space: pre;
}
<div class="line">Text 1
Text 2</div>
<div class="line">Text 3</div>
<div class="line">Text 4</div>

如果选择所有文本,前两行“合并”在一起,但白线出现在第三和第四行之前,即使所有四行中实际文本之间的距离相同?

如何在不改变字体或间距的情况下摆脱它们?

【问题讨论】:

  • 为什么会出现这个问题。
  • 因为当你选择一大块文本时它看起来很难看。
  • 将行高改为 16px;这是唯一的方法。或者更改您的填充。
  • 这实际上取决于浏览器,在 Firefox 上,即使在 Text 1 和 Text 2 之间也会出现空白。
  • 如果你想要更多 strange 行为,请使用较大的 line-height 值 ...并在元素上尝试较大的 line + inline-block 值

标签: html css


【解决方案1】:

您可以尝试使用line-height: 1;line-height: 1.1;,但您的文本会失去可读性。 我通常为 14px 左右的字体大小设置 line-height: 1.6;

.line {
  font-family: 'Courier';
  font-size: 14px;
  line-height: 1;
  white-space: pre;
}
<div class="line">Text 1
Text 2</div>
<div class="line">Text 3</div>
<div class="line">Text 4</div>

【讨论】:

  • 在 Chrome 中,选择框之间有明显的重叠,比其他选择框更暗。