如何用Less计算正弦,余弦?

tes*_*ter 7 css math trigonometry less

尝试转换以下php方法以在.less样式表中使用:

<?php
    $deg2radians = pi() * 2 / 360;
    $rad = $degree * $deg2radians;
    $costheta = cos($rad);
    $sintheta = sin($rad);
?>
Run Code Online (Sandbox Code Playgroud)

在Less中,如何在不使用特定于语言的cos()/ sin()函数的情况下实现正弦/余弦方法?

.rotate(@deg) {
    // css transform capable browsers properties...

    // IE <= 8
    @deg2radians: 3.1416 * 2 / 360;
    @rad: @degree * @deg2radians;
    @sintheta: sin(@rad);             // How to sin()?
    @costheta: cos(@rad);             // How to cos()?

    // filter: transform matrix method...
}
Run Code Online (Sandbox Code Playgroud)

voi*_*hos 9

好吧,它不是完全独立于语言,但由于它只是Javascript,它应该适用于所有LESS实现,除非我没有清楚地考虑这一点.

话虽这么说,你可以使用Javascript来计算正弦和余弦:

.rotate(@deg) {
    // css transform capable browsers properties...

    // IE <= 8
    @deg2radians: 3.1416 * 2 / 360;
    @rad: @degree * @deg2radians;
    @sintheta: ~`Math.sin(@{rad})`;
    @costheta: ~`Math.cos(@{rad})`;

    // filter: transform matrix method...
}
Run Code Online (Sandbox Code Playgroud)

反引号用于评估Javascript,您也可以实际访问DOM.例如,完全允许以下内容:

`document.write('Hello!')`
Run Code Online (Sandbox Code Playgroud)

波浪号用于转义,@ {}表示变量插值.例如:

@input: 10;

`document.write(Math.sin(@{input}))`;
Run Code Online (Sandbox Code Playgroud)

查看LESS使用指南了解更多信息.