小编典典

在不影响IE 8中包含元素的情况下,div的背景不透明?

css

我想在不影响IE 8中包含元素的情况下设置div背景的不透明度。有任何解决方案,并且不回答设置1 X 1
.png图像并设置该图像的不透明度,因为我使用的是动态不透明度,并且颜色管理可以更改那

我用过但在IE 8中无法使用

#alpha {
    filter: alpha(opacity=30);
    -moz-opacity: 0.3;
    -khtml-opacity: 0.3;
    opacity: 0.3;
}

rgba(0,0,0,0.3)

也。


阅读 283

收藏
2020-05-16

共1个答案

小编典典

opacity风格的影响在它整个元素和一切。正确的答案是改用rgba背景色。

CSS非常简单:

.myelement {
    background: rgba(200, 54, 54, 0.5);
}

…前三个数字是背景色的红色,绿色和蓝色值,第四个数字是“ alpha”通道值,其作用方式与该opacity值相同。

请参阅此页面以获取更多信息:http : //css-
tricks.com/rgba-browser-support/

不利的一面是,这在IE8或更低版本中不起作用。我在上面链接的页面上还列出了一些其他无法使用的浏览器,但现在它们都已经很旧了。当前使用的所有浏览器(IE6 /
7/8除外)都可以使用rgba颜色。

好消息是,您可以使用称为CSS3Pie的黑客强制IE也与此一起工作。CSS3Pie在IE的较旧版本中添加了许多现代CSS3功能,包括rgba背景色。

要将CSS3Pie用作背景,您需要向-pie-backgroundCSS 添加特定的声明以及PIE behavior样式,因此样式表最终将如下所示:

.myelement {
    background: rgba(200, 54, 54, 0.5);
    -pie-background:  rgba(200, 54, 54, 0.5);
    behavior: url(PIE.htc);
}

希望能有所帮助。

[编辑]

正如其他人提到的,它的价值是可以使用IE的filter样式以及gradient关键字。CSS3Pie解决方案实际上确实在幕后使用了相同的技术,但是不需要您直接搞乱IE的过滤器,因此样式表更加简洁。(它也添加了很多其他不错的功能,但这与本讨论无关)

2020-05-16