3

使用 CSS,我如何根据其(或其父级)的行高来调整框的高度?

这将允许容易地使文本区域成为行数的精确倍数,例如允许精确地显示三行。

我不想要一个 javascript 解决方案,因为它们通常很慢并且与动态重新渲染的布局交互很差。

编辑:按照MDN 的建议,在我的情况下,行高以无单位数字指定,因此如果不需要行高单位来使其工作,它会很方便。

4

1 回答 1

5

我不确定我是否完全理解了这个问题,但你不能只使用相对单位 - ems 吗?

例如,如果行高为 2ems(或无单位),并且您希望框的总高度为 3“行”高(可能不考虑填充),那么您可以将高度设置为 6ems。这样,行高会根据您的基本单位(字体大小)灵活变化,并且使用相同的基本单位,高度也将是可变的。

这是一个例子:

.myBox {
     line-height: 2; // this will be twice the value of the font-size
     height: 6ems; // equivalent to 3 lines high

要在 SASS 中实现相同的目标,您可以编写:

$lineheight: 2; // this value can be unitless or a unit like ems, px or percentage
$numberoflines: 3; 
.myBox {
    line-height: $lineheight;
    height: $lineheight * $numberoflines;
}

这将使您可以灵活地将变量移动到设置文件中,以便您(或其他人)可以轻松更改值,而无需找到所有使用变量的选择器。

于 2013-08-08T08:36:12.970 回答