CMYK值为背景颜色

时间:2012-09-07 16:43:50

标签: css background-color cmyk

我必须使用RGB值设置div的backgroundColor。我能够这样做。

<div style="width: 100px; height: 100px; background-color: rgb(255,0,0)">
</div>

现在,由于我也有CMYK(0,1,0.5,0)值,所以你能帮助我如何实现这些值。

我这样做,但没有收获。

<div style="width: 100px; height: 100px; background-color: device-cmyk(0, 1, 0.5, 0)">
</div>

谢谢

3 个答案:

答案 0 :(得分:3)

你不能直接在CSS中做到这一点。您必须将CMYK值转换为其他地方的RGB对应物(可能是通过服务器端脚本),并使用CSS中的转换值。请注意,转换实际上与SVG函数的作用并不相同。

答案 1 :(得分:2)

您可以使用此PHP函数或使用类似的算法来实现客户端脚本语言:

function cmyk_to_rgb2($c, $m, $y, $k)
{
    $c = (255 * $c) / 100;
    $m = (255 * $m) / 100;
    $y = (255 * $y) / 100;
    $k = (255 * $k) / 100;

    $r = round(((255 - $c) * (255 - $k)) / 255) ;
    $g = round((255 - $m) * (255 - $k) / 255) ;
    $b = round((255 - $y) * (255 - $k) / 255) ; 

    $o->r = $r ;
    $o->g = $g ;
    $o->b = $b ;

    return $o ;
}

PHPJavaScript

答案 2 :(得分:0)

你可以用 SCSS 做到:

@function cmyk($c, $m, $y, $k:0) {
  $c: $c / 255;
  $m: $m / 255;
  $y: $y / 255;
  $k: $k / 1;
  $r: 255 * (1 - $c) * (1 - $k);
  $g: 255 * (1 - $m) * (1 - $k);
  $b: 255 * (1 - $y) * (1 - $k);
  @return rgb($r, $g, $b);
}

注意:key 的最大值为 1,超过这个值,颜色开始反转。