白色不透明背景上使用rgba显示灰色,而在白色背景上呈现为什么?

14

我在一个白色背景上添加了一个div,使其具有透明背景,就像这样:

body {
    background: white;
}

.opaque-white {
    background: rgba(255,255,255,0.95);
    height: 300px;
    width: 300px;
}
<body>

    <div class="opaque-white">
        Area with opaque (opacity: 0.95) background.
    </div>

</body>

JSFiddle链接:http://jsfiddle.net/DvYCA/4/

但是由于某些原因,div的颜色显示为灰色而不是白色。不透明白色覆盖在白色上应该显示...白色,对吗?

或者我错了吗?

编辑: 我添加了一个问题的截图。这是一个非常微妙的差别,在一些屏幕上可以注意到。要真正理解差异,请尝试选择左侧图片区域与右侧图片区域颜色的区别。 Difference between white and transparent-white-over-solid-white :)


3
你是在使用IE5、Netscape或其他浏览器吗? - Brewal
@j08691 哈哈,每当有人提到某物是白色的时候,我一定会用这个词!:') - SaturnsEye
RGBA在所有浏览器中都不受支持,这可能是问题所在:http://css-tricks.com/rgba-browser-support/ - David Nguyen
你在哪个浏览器中看到这种行为?我在最新的 Firefox 25 中没有看到。 - Jonathan Marzullo
1
我正在Mac OS上使用最新版本的Chrome浏览器(31)查看它。 - Spiros Martzoukos
显示剩余4条评论
4个回答

8

这不是你的屏幕问题。颜色选择器没有说谎。我发现在Chrome 38和Canary 40中仍然存在该bug。对我有效的方法是在.opaque-white div中添加transform: translateZ(0);


1
也适用于我。 - technopeasant

1

看起来是一个bug:Chrome合成并输出rgb(254,254,254),而Safari则输出rgb(255,255,255)。有趣的是,无论使用什么alpha值,Chrome始终输出相同的颜色。只有在alpha值为0或1时才显示完全的白色,介于两者之间的任何值都会产生微妙的灰白色。


0

您的截图似乎展示了所需的效果 - 对我来说它是白色的,在Photoshop中打开后,一侧为255,255,255,另一侧为254,254,254。

您是否在不同的显示器上检查过?对我来说,解决方案(或者说问题)实际上是本地的 - 可能是您的屏幕或某个损坏的.icm文件。

您可以尝试使用十六进制值和不透明度属性吗?

.opaque-white {
background: #ffffff;
opacity:.95;
}

这是一个 JSFiddle:http://jsfiddle.net/Gv59a/

0

我遇到了这个问题,并发现两个不同的显示器之间存在差异。

在我的主要显示器上,我看到的是灰色,而在我的次要显示器上,我看到的是白色。

不同的显示技术使用略微不同的算法来计算每个像素的显示内容,任何显示技术都可能因各种原因而退化,从而影响精度。

我还发现,观看角度可以强调效果http://www.techmind.org/lcd/colour.html

尝试在不同的显示器上查看您的网站/示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接