3

我必须使用 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>

谢谢

4

3 回答 3

3

您不能直接在 CSS 中执行此操作。您必须在其他地方(可能通过服务器端脚本)将 CMYK 值转换为对应的 RGB 值,并在 CSS 中使用转换后的值。请注意,转换实际上与 SVG 函数所做的并没有太大区别。

于 2012-09-07T16:56:50.257 回答
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 ;
}

脚本语言_

于 2013-03-12T06:26:43.053 回答
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,如果超过了,颜色开始反转。

于 2021-03-04T21:36:27.133 回答