我想在不影响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)
也。
该opacity风格的影响在它整个元素和一切。正确的答案是改用rgba背景色。
opacity
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样式,因此样式表最终将如下所示:
-pie-background
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的过滤器,因此样式表更加简洁。(它也添加了很多其他不错的功能,但这与本讨论无关)
filter
gradient