【发布时间】:2019-08-22 20:23:14
【问题描述】:
考虑代码:
p {
display: inline-block;
font: 17px / 1.5 serif;
}
.floating {
float: right;
background: bisque;
width: 10em;
height: 9em;
}
<p>
<span class="floating"></span>
Line 1<br>
Line 2<br>
Line 3<br>
Line 4<br>
Line 5<br>
Line 6<br>
Line 7 should not break
</p>
我很难理解是什么原因导致浏览器(例如 Chrome 和 Safari)认为此示例中的浮动块高于 6 行非常统一的文本,行高 = 1.5,因此在 font-size=17px结果如下所示:
而且,假设我选择 font-size=20px,结果看起来像预期的那样:
这是一个错误还是非常预期的事情?如果后者是有效的,我在哪里可以阅读以像素为单位计算结果行高的细节(可能取决于字体属性)?
【问题讨论】:
-
我无法复制这个问题......使用任何给定的字体大小,我都能得到你想要的结果。你用的是什么浏览器?
-
@A.Meshu,我的浏览器版本是:Google Chrome 71.0.3578.98 (Official Build) (64-bit) Revision 15234034d19b85dcd9a03b164ae89d04145d8368-refs/branch-heads/3578@{#897}
-
FF 68 实际上按预期工作......也许这是一个 chrome 错误。
-
可能与 chrome 在行高中呈现那些半像素的方式有关 - 如果从浮动框的大小中删除 3px(对于 6 组 0.5px),它会浮动为你想要它。我猜这个错误会出现在每个奇怪的字体大小(这就是为什么它适用于 20px)
-
jsfiddle.net/90gLrj8b - 更改为任何奇怪的字体大小并删除那些 3px 应该使框正确浮动
标签: css