【发布时间】:2013-01-02 03:50:19
【问题描述】:
这可能是一个棘手的问题。
我有一个 php 函数,它在 rgba() 中返回一个颜色值,并带有一个参数 $alpha。
function colorWheel($alpha) {
"rgba(170, 135, 178, ".$alpha.")"
…
}
所以打电话的时候……
.title { color: <?php echo colorWheel(.8); ?>; }
…我收到rgba(170, 135, 178, .8);
我遇到的问题是颜色是“透明的”并显示“叠加层”。
然而我真正喜欢的只是80%的色值! 没有任何透明覆盖。
现在的问题是如何解决这个问题?
有什么创意可以做到这一点吗?我不需要使用rgba(),这只是我想到的最简单的事情。是否有一种 CSS 方法不混合具有 alpha 值的重叠形状?
或者有没有 php 解决方案来计算 rgb(170, 135, 178) 的 80% 版本?
重要的是,此计算与函数动态配合,因为函数中有更多颜色 - 这是"How to return a color-value based a date and random?" 的后续问题!
提前谢谢你。
【问题讨论】:
-
但这就是透明色的工作原理。我认为您希望在这些对象的整个容器上使用整体
opacity: .8;,而不是在每个对象上使用单独的 RGBA 颜色。 -
与其使用 alpha 值来获得“该颜色的 80%”表示,不如将其转换为 HSL 并降低其亮度或饱和度,然后再转换回 RGB 并使用那些值而不是修改 alpha 值。 RGBA 适用于 alpha..
-
我知道这就是透明度的工作原理:) 这就是我问的原因。不幸的是,具有这些颜色的物品不是同一个“容器”,而是相互重叠的不同对象。这就是为什么我还要求一个 php 答案。我只是想也许我错过了一些 CSS 设置。
-
什么的 80%? Html 颜色空间 RBG 和 HSL。您可以采用 80% 的所有颜色通道或转换为 hsl 并将饱和度或亮度降低到 80%。
-
@Christoph 没关系!我还可以使用十六进制颜色创建数组。看到这个……stackoverflow.com/questions/14231823/………我只需要这个功能就可以这样工作。我只是想传递一个
$alpha参数并在返回的colorWheel()中获得80% 的颜色版本。我不在乎我是否收到rgba()、rgb()或#hex返回。我只需要用 css 设置值。