有什么方法可以在CSS中“投射”单元?

时间:2019-05-28 20:01:21

标签: css units-of-measurement css-calc

我正在尝试相对于屏幕宽度更改CSS中的元素旋转。像这样:

transform: rotate(calc(30deg / 100vw / 1000px));

显然,长度算术返回<length>,并且按长度划分度是非法的。另一方面,calc(30deg / 2)可以正常工作。是否有CSS技巧可以将长度“投射”到<number>?我目前不希望使用JavaScript。

1 个答案:

答案 0 :(得分:0)

似乎没有。

https://drafts.csswg.org/css-values-3/#calc-notation

  

如果兼容,则按如下所述解析类型(为简单起见,以下操作符忽略了优先级规则):

     

+-处,检查双方的类型是否相同,或者一侧为a,另一侧为<integer>。如果双方是同一类型,请解析为该类型。如果一侧是<number>,另一侧是<integer>,请解析为<number>

     

*,检查至少一侧是<number>。如果双方均为<integer>,请解析为<integer>。否则,请解析到另一侧的类型。

     

/处,检查右侧是否为<number>。如果左侧为<integer>,请解析为<number>。否则,请解析为左侧的类型。

     

注意:代数简化不会影响calc()表达式或其可解析类型的有效性。例如,calc(5px - 5px + 10s)calc(0 * 5px + 10s)由于试图添加长度和时间而均无效。

还有https://www.w3.org/TR/css-values-4/#calc-type-checking