假设我定义了一个CSS变量--half
等于50%
。
:root {
--half: 50%;
}
然后我可以将某物的width
设置为50%
,如下所示:
.partial {
width: var(--half);
}
到目前为止一切顺利。假设我有一个tall
元素,我想垂直填充视口:
.tall {
height: 100vh;
}
太好了。最后,如果使用tall
,我希望我的50vh
元素仅填充垂直空间的一半(即partial
)。所以我尝试了这个:
.tall.partial {
height: calc(100vh * var(--half));
}
糟糕,这似乎不起作用。如果我将--half
重新定义为等于0.50
,它将起作用:
:root {
--half: 0.50;
}
但是我上面的width
设置不能单独使用变量。
问题A部分:如何在CSS XX%
表达式中使用calc()
名称并将其解释为百分比值作为乘法的一个因素? / p>
问题B部分::如果无法做到这一点,有没有办法我可以按照实际值来定义百分比值,反之亦然,例如以下虚拟定义? (我宁愿不定义重复的“镜像”值,一个百分比,一个小数点。)
:root {
--half-factor: 0.50;
--half: calc(var(half-factor) * 100)%;
}