【发布时间】:2019-10-14 09:39:25
【问题描述】:
我正在尝试根据屏幕宽度更改 CSS 中的元素旋转。比如:
transform: rotate(calc(30deg / 100vw / 1000px));
显然,长度算术返回<length>,长度除度是非法的。另一方面,calc(30deg / 2) 工作正常。是否有任何 CSS 技巧可以将长度“投射”到<number>?目前我宁愿避免使用 JavaScript。
【问题讨论】:
-
不,没有办法仅仅因为没有将
deg与px或vw分开的逻辑结果......例如10deg/10px的结果应该是什么?跨度> -
@AnnaAvina 读一读 quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html 它不会回答你的问题,但可能会阐明为什么你不能按像素分割
-
@TemaniAfif 公平地说,
vw必须在某些时候转换为像素,才能呈现页面。浏览器可以在渲染过程中的某个时间点进行计算并非不可想象。也就是说,就渲染过程的性能而言,允许人们进行这些计算并不总是一个好主意。例如,如果是(100vw + 1000px);每次计算屏幕宽度时,都会设置为宽 1000px,您必须再次重新计算 100vw... -
@HereticMonkey 这就是我们需要定义关系的原因。实际上,您正在将
vw转换为一个像素,并且您可能认为将一个像素值除以另一个会得到一个数字,然后我们可以使用这个数字来划分度数。我可以通过将 px 转换为 vw 来做同样的想法,然后进行除法以获得另一个数字。不幸的是 CSS 无法做到这一点.. @anna 我很确定你最终想要实现的目标可以通过这个复杂的计算来完成,你能分享你正在尝试做的事情吗? -
我认为答案是否定的,无论该答案的技术(或逻辑)推理如何 :)。
标签: css units-of-measurement css-calc