在 contenteditable div 中,当我有多行时,我使用 line-height 来添加一些行空间。这是一个显示问题的示例 div:

<div style="padding: 50px; width: 90px; line-height: 2em;" contenteditable="true">
  line height line height line height
  <span style="line-height: 1em; color: Red;">line height</span>
  <span style="line-height: 10px; color: Orange;">line height</span>
  <span style="line-height: normal; color: Green;">line height</span>
  <span style="line-height: .5em; font-size: .5em; height: 5px; color: Blue;">line height</span>
</div>

在 Chrome 中,当您将插入符号移动到第二行时,插入符号的高度会变大。我在具有不同行高的 div 中添加了一些跨度,但这根本不影响插入符号的高度。

在 Safari 中,我看到了同样的问题。在 Firefox 中,它按预期工作,即插入符号高度与字体大小匹配,而不是行高。

有什么办法可以在 Chrome 和 Safari 中解决这个问题?

最佳答案

<span> 是用于短语内容的通用内联容器,并且(因此)没有高度。

如果您将所有 <spans> 声明为具有 display:inline-block,插入符号将相应地调整大小:

div {
padding: 50px;
width: 90px;
line-height: 2em;
}

div span {
display:inline-block;
}

div span:nth-of-type(1) {
line-height: 1em;
color: Red;
}

div span:nth-of-type(2) {
line-height: 10px;
color: Orange;
}

div span:nth-of-type(3) {
line-height: normal;
color: Green;
}

div span:nth-of-type(4) {
line-height: .5em;
font-size: .5em;
height: 5px;
color: Blue;
}
<div contenteditable="true">
  line height line height line height
  <span>line height</span>
  <span>line height</span>
  <span>line height</span>
  <span>line height</span>
</div>

关于css - 如何在不影响插入符号高度的情况下使用行高?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34866992/

10-13 01:10