【问题标题】:CSS: opacity causes slight background color variationCSS:不透明度导致轻微的背景颜色变化
【发布时间】:2012-07-03 07:15:32
【问题描述】:

我为正文设置了特定的背景颜色。然后,我想使用另一个具有相同背景颜色但 opacity: .95 的 div 作为页面底部动画内容的掩码。这导致掩蔽 div 的颜色看起来略有不同。有没有办法解决这个问题?

查看屏幕截图here 和下面的示例 CSS。我在 Lion 上使用 Chrome 20。

body
{
    background: #3f3c45;  
}

#bottommask
{
    background: #3f3c45;
    opacity: .95;
}

更新:请查看this fiddle 演示问题


更新的解决方案:似乎至少在 Chrome 中,使用 -webkit-backface-visibility: hidden;在 mask div 上解决了这个问题。

【问题讨论】:

  • 这就是不透明度应该发生的事情。你了解不透明度的工作原理吗?
  • 嗯,你期望它做什么?该颜色的较浅色调......是一种“稍微”不同的颜色
  • 我会认为如果我只改变不透明度并在下面有相同的颜色,那么差异就不会显示出来。我非常清楚不透明度是如何工作的,我所期待的正是 Photoshop 所做的,但我想这不是浏览器处理它的方式。如果没有不透明度,还有其他方法可以实现这种效果吗?

标签: html css opacity background-color


【解决方案1】:

这是从下方计算 5% 色彩增益的效果的问题。

三种方式:

  • 计算,或
  • 使用 Firebug 颜色选择器进行试验/错误,或
  • 制作屏幕截图并对透明色进行采样,然后将采样的颜色应用于非 Alpha 背景。

对于纹身部位,我已更改为稍微不同的颜色,以考虑不透明度的颜色偏移。

body {
    background: #8d918f;
}

【讨论】:

  • 谢谢 Eric,但我试过 rgba,结果是一样的。我想你误会了我,我说的是纯色上的纯色。这是一个演示问题的小提琴:link
  • @dtailed 如果这是您需要的,请告诉我。一个div,内容略显透明,但保持与下图相同的颜色?
  • 就是这样。它甚至没有内容,它只需要稍微透明但仍然与下面的颜色相同。
  • @dtailed 我不明白你为什么需要它稍微透明一点。我认为你只需要摆脱opacity
  • 我为thefamilybusinesstattoo.com 做了类似的事情(在页面加载后向下滚动以查看掩码),但由于较浅的灰色阴影,差异不太明显,但仍然存在。跨度>
猜你喜欢
  • 2013-02-05
  • 1970-01-01
  • 2017-08-11
  • 2013-08-23
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
相关资源
最近更新 更多