我正在使用以下CSS设置
的背景不透明度:
background: rgba(255, 255, 255, 0.3);
在Firefox中工作正常,但在IE 8中无法正常工作。我该如何使其工作?
我正在使用以下CSS设置
background: rgba(255, 255, 255, 0.3);
在Firefox中工作正常,但在IE 8中无法正常工作。我该如何使其工作?
要在IE中模拟RGBA和HSLA背景,您可以使用渐变滤镜,使用相同的起始和结束颜色(alpha通道是HEX值中的第一对)
background: rgba(255, 255, 255, 0.3); /* browsers */
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#4cffffff', endColorstr='#4cffffff'); /* IE */
创建一个比1x1像素更大的png图片(感谢thirtydot),并且与你的背景透明度相匹配。
编辑:为了支持IE6+,你可以为png指定bkgd块,这是一种颜色,如果不支持真正的alpha透明度,它将替换它。你可以使用gimp来修复它。
1x1
以外的任何尺寸:https://dev59.com/Qmsz5IYBdhLWcg3wn5ba#7765128 - thirtydot"跨浏览器透明度背景CSS(rgba)"(*现在链接到archive.org)
#div {
background:rgb(255,0,0);
background: transparent\9;
background:rgba(255,0,0,0.3);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4cFF0000,endColorstr=#4cFF0000);
zoom: 1;
}
.transparent {
/* works for IE 5+. */
filter:alpha(opacity=30);
/* works for IE 8. */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
/* works for old school versions of the Mozilla browsers like Netscape Navigator. */
-moz-opacity:0.3;
/* This is for old versions of Safari (1.x) with KHTML rendering engine */
-khtml-opacity: 0.3;
/* This is the "most important" one because it's the current standard in CSS. This will work in most versions of Firefox, Safari, and Opera. */
opacity: 0.3;
}
或者使用jQuery完成:
// a crossbrowser solution
$(document).ready(function(){
$(".transparent").css('opacity','.3');
});
虽然有点晚,但今天我不得不使用了这个非常有用的PHP脚本,你可以在这里找到它,可以让你动态创建PNG文件,就像RGBA工作方式一样。
background: url(rgba.php?r=255&g=100&b=0&a=50) repeat;
background: rgba(255,100,0,0.5);
rgba
的浏览器中才被请求吗?还是所有用户都会请求它,只是没有显示出来? - Darren Cook大多数浏览器都支持CSS中的RGBa代码,但仅IE8及以下版本不支持RGBa CSS代码。为此,这里有一个解决方案。要解决此问题,您必须按照以下代码,并最好按照其顺序进行,否则您将无法获得所需的完美输出。我使用了这个代码,它基本上是完美的。如果有任何问题,请留下评论。
.class
{
/* Web browsers that does not support RGBa */
background: rgb(0, 0, 0);
/* IE9/FF/chrome/safari supported */
background: rgba(0, 0, 0, 0.6);
/* IE 8 suppoerted */
/* Here some time problem for Hover than you can use background color/image */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000, endColorstr=#88000000)";
/* Below IE7 supported */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#88000000, endColorstr=#88000000);
}
.opaque {
opacity : 0.3;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
}
虽然我来晚了,但对于其他发现此文章的人 - 这篇文章非常有用: http://kilianvalkhof.com/2010/css-xhtml/how-to-use-rgba-in-ie/
它使用渐变滤镜来显示实心但透明的颜色。
要在IE中使用rgba
背景,需要提供备用方案。
我们需要使用filter
属性,该属性使用ARGB
。
background:none;
-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33ffffff,endColorstr=#33ffffff);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#33ffffff,endColorstr=#33ffffff);
zoom: 1;
这是 rgba(255, 255, 255, 0.2)
的回退方案。
根据您的需要更改#33ffffff
。
RGBA
计算ARGB
这个解决方案非常有效,请尝试。在IE8中进行了测试。
.dash-overlay{
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4C000000,endColorstr=#4C000000)";
}