我正在尝试相对于屏幕宽度更改CSS中的元素旋转。像这样:
transform: rotate(calc(30deg / 100vw / 1000px));
显然,长度算术返回<length>
,并且按长度划分度是非法的。另一方面,calc(30deg / 2)
可以正常工作。是否有CSS技巧可以将长度“投射”到<number>
?我目前不希望使用JavaScript。
答案 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)
由于试图添加长度和时间而均无效。