有人可以帮助解释css3 calc()方法实际上是如何工作的吗?

时间:2010-06-14 18:45:51

标签: css cross-browser

http://www.w3.org/TR/css3-values/#calc

我一直致力于将一些css3方法转换为css2的库。一个棘手的部分是数学.. css3的calc()方法的提议几乎让我大吃一惊......

我能够从ems或任何其他固定单位添加/减去/除/乘像素,但我不知道如何将10px添加到60%。

假设你有变量设置:$ width1 = 10px;和$ width2 = 50%;

width: <?php echo $width1 + $width2; ?>;

有没有办法执行这种数学运算,以便静态宽度值可以应用于旧版浏览器?也许使用css表达式作为后备?

1 个答案:

答案 0 :(得分:1)

从我最好的猜测来看,你做不到。这就是CSS3添加该功能的原因,因为CSS2无法独立完成。有几个CSS框架添加了该功能。至于单位转换,你必须使用你的例子做出一些关于优先级的决定:

$ width1 = 10px $ width2 = 50%

假设(对于此示例)500px屏幕,如果百分比优先,则您首先拥有一个250px的块,向其添加10px,从而产生260px。如果你走另一条路,它将是250px。 (这假设auto优先于所有,所以auto + 10px,然后50%的父容器。)