有没有办法在CSS计算中使用pi?

Phi*_*les 31 css svg css3 css-animations

我有一个圆SVG动画的进度条,其中stroke-dashoffset从动画0,radiusradius,0(0%至100%).

圆周长度的等式是pi * d.有没有办法使用CSS calc函数,它可以使用pi的值,而不只是一个舍入值(如3.14)?

rob*_*t-s 28

不幸的是,CSS中没有PI变量这样的东西.

然而 ......

可以使用CSS变量的数量分配给它,下滑的是,它有一个非常非常糟糕的浏览器支持.

这将工作如下:

:root {
  --PI: 3.14159265358979; // enter the amount of digits you wish to use
}

.circle {
    width: calc(100 * var(--PI));
}
Run Code Online (Sandbox Code Playgroud)

最好的解决方案是使用SASS或Less之类的预处理器来分配PI变量,这看起来像SASS中的以下示例:

$pi: 3.14159265358979 // amount of digits you wish to use

.circle {
    width: calc(100 * ${pi});
}
Run Code Online (Sandbox Code Playgroud)

编辑:正如评论中所提到的,一些浏览器(Safari + IE)舍入到2位小数,其中Chrome和Firefox可以舍入到(至少)4位小数.

  • 这就是我所提到的,以及我在SASS或Less选项中编辑的主要原因. (7认同)

Our*_*rus 10

没有.

考虑到计算机无法完全实现所有数字,因此该值将被舍入.只需对pi使用冗长的近似值:

3.141592653589793
Run Code Online (Sandbox Code Playgroud)

  • 一旦你走了那么远,你也可以再添加一个数字:为浮点数做出合理的IEEE 754表示假设,`3.141592653589793`尽可能好,因为它可以舍入到最接近的IEEE 754二进制64值为π的真值.您给出的值将减去大约7.3 ulps(最后一个单位). (7认同)