如何使用calc()
来确定transform:rotate()
的角度值?
calc()
CSS函数可用于需要<length>
、<frequency>
、<angle>
、<time>
、<number>
或<integer>
的任何位置。使用calc()
,您可以执行计算以确定CSS属性值。
然而,对我而言,使用calc()
来创建transform:rotate()
的角度值是无法实现的。
这篇博客的建议不起作用 -- transform: rotate(calc(1turn - 32deg));
,或使用calc()
进行类似操作的变体。
请参见此Codepen以进行验证 - 只有第五个<div>
按预期旋转且不使用calc()
来确定角度。
以下是Codepen的主要代码:
div {
height: 200px;
width: 200px;
background-color: red;
}
.one {
transform: rotate(calc(1turn - 32deg));
}
.two {
transform: rotate(calc(360deg - 90deg));
}
.three {
transform: rotate(calc(360deg/4deg));
}
.four {
transform: rotate(calc(22deg + 23deg));
}
.five {
transform: rotate(45deg);
}
这个问题在最新的Chrome、Firefox Developer Edition和Safari中都存在。
还有其他讨论涉及到这个问题,但没有提供任何解决方案。例如:
- 在firefox中使用transform()和calc() - calc()在颜色和变换函数内不起作用
360度/4度
看起来不对。 - Banzay360deg/4deg
,这是因为你正在寻找360deg / 4
(注意空格并删除4
上的deg
)。 - Dekel