【发布时间】:2019-12-24 17:27:39
【问题描述】:
<style>
div.red {
border-left: 5px solid rgb(255, 96, 92);
margin: auto;
padding: 0.5em 1em;
width: 95%;
}
</style>
<div class="red">
<p>Aaa aaa aaa aaa aaa</p>
<div class="red">
<p>Aaa aaa aaa aaa aaa</p>
</div>
</div>
我有一个基色 (rgb(255, 96, 92)),我需要将它合并到 div 的样式中,作为背景。
div 的背景应该比底色浅一些,类似于
div.red {
rgba(255, 96, 92, 0.25);
}
但是,我不能使用
background: {rgba(255, 96, 92, 0.25);}
直接,因为它改变了嵌套div的背景颜色。
不透明度也不合适,因为它会改变文本的颜色。
div.red {
background: rgb(255, 96, 92);
opacity: 0.25;
}
过滤器不适合与不透明度相同的原因:它们会影响文本。
我知道的另一个选项是 HUE 颜色模型。它不适合,因为我需要保留对基色的引用。
rgb(255, 96, 92) 与hsl(1, 100%, 68%) 相同。我可以将 68 更改为 93,它会提供所需的视觉效果。但是现在我不能说,查看我的代码,哪个颜色是基色。
div.red {
background: hsl(1, 100%, 93%);
}
我正在寻找的最好方法是
div.red {
background: rgba(255, 96, 92, 0.25);
background-alpha-channel: separate; /* separate or merge,
depending of what you need. */
}
【问题讨论】:
-
看来用JS可以更好的解决。使用 rgba 作为背景,然后 JS 应该将其转换为 rgb。似乎我找到了合适的代码,但由于某种原因我无法理解如何使用它:stackoverflow.com/a/21576659(我已经在那里留下了评论。)
标签: css colors background-color