【发布时间】:2021-09-26 14:00:18
【问题描述】:
我正在尝试将一个元素限制为 2 行文本,并且我想要 -webkit-line-clamp 的后备。当系统默认字体大小为默认时,此解决方案有效:
line-height: 1.3em;
max-height: 2.6em;
overflow: hidden;
但是,在Android上,如果我更改系统的字体大小,第二行的底部会被切断:
字体大小为 16px,但使用 Android 的缩放 (1.3x),计算的样式为:
font-size: 20.8px;
line-height: 27.04px;
max-height: 41.6px;
所以看起来font-size 和line-height 被缩放,但不是max-height。由于max-height 基于em,我希望它也可以扩展。有没有办法让这个工作?
【问题讨论】:
-
我不太明白,因为它看起来好像在您展示的第一个 CSS 中设置了 max-height = 2*line height 但在第二组 CSS max-height = 2em 中。你的 CSS 是什么?您能否使用 CSS 变量作为行高并将 max-height 设置为两倍(显然要删除任何填充)。
-
@AHaworth 补充说字体大小为 16 像素,但 Android 将其缩放为 20.8 像素。正如预期的那样,最大高度为 2.6*16
-
为什么当用户修改他们的字体大小偏好时,
max-height会被缩放?我的印象是它只缩放font-size和line-height属性,因为它们是唯一与字体大小有关的属性。 -
@Spectric 对,一个可能的解决方案是以某种方式使容器的高度与字体大小一起缩放。如果
max-height不能缩放,我不知道是否有其他属性或黑客可以缩放高度 -
@LeoJiang 您可能必须使用 JavaScript 来获取计算的字体大小并动态计算最大高度,或者将字体大小存储在 CSS 变量中并使用
calc()来计算最大高度。跨度>
标签: android html css font-size