css - 子元素和父元素,均具有 RGBA 背景。如何确定 "equivalent"rgba?

标签 css background background-color rgba

假设我有:

<div class="dark">
    <div class="lite"></div>
</div>

<div class="medium"></div>

和一些CSS:

.dark {background:rgba(10,10,10,0.8);}
.lite {background:rgba(200,200,200,0.5);}

如果我希望 medium 具有与合并后的 dark > lite 相同的 rgba 值,需要进行哪些计算?我认为一个简单的归一化计算(归一化每个颜色分量并相乘)会起作用,但事实似乎并非如此。

最佳答案

这样的计算无法使用 CSS 完成,但您的目标可以使用 background-blend-mode: multiply 实现。然而,这还没有得到广泛支持:http://caniuse.com/#feat=css-backgroundblendmode .

您可能需要一个 JavaScript 解决方案,查看这些 jQuery 插件: https://github.com/farski/jquery-blend/ https://github.com/jquery/jquery-color/

此外,根据您问题的性质,使用 CSS 预编译器或许可以解决它,但这仅在您需要一次性获取此颜色时有效,而不是动态获取。

在 LESS 中,这会像这样简单:

@dark: rgba(10,10,10,0.8);
@lite: rgba(200,200,200,0.5);

.dark {background: @dark;}
.lite {background: @lite;}
.medium {  
    background-color: mix(@dark, @lite, 50%);  
}  

关于css - 子元素和父元素,均具有 RGBA 背景。如何确定 "equivalent"rgba?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27676167/

相关文章:

css - 相同的浏览器。相同的 Windows 版本。款式相同。不同的字体渲染

jquery - 粘性页脚创建无限滚动

ios - 缓存 View Controller

css - 使用 css 模糊背景图像

objective-c - TableView 背景颜色不变

html - 更改鼠标悬停行的背景颜色

jquery - 向元素添加背景图像和背景颜色对

html - 仅在 Safari 中使用 flexbox 设置父 div 样式时,包含 span 的相邻 div 重叠

html - ie10选择框显示

CSS 在悬停时改变 parent 的背景?