Jquery rgba()在IE8中不工作
我只是坚持使用IE8在jQuery中进行RGBA()操作 到目前为止,我有:Jquery rgba()在IE8中不工作,jquery,css,internet-explorer,Jquery,Css,Internet Explorer,我只是坚持使用IE8在jQuery中进行RGBA()操作 到目前为止,我有: $('.set').click(function (e) { var hiddenSection = $('div.hidden'); hiddenSection.fadeIn() .css({ 'display': 'block' }) .css({ width: $(window).width() + 'px', height: $(window).height()
$('.set').click(function (e) {
var hiddenSection = $('div.hidden');
hiddenSection.fadeIn()
.css({ 'display': 'block' })
.css({ width: $(window).width() + 'px', height: $(window).height() + 'px' })
.css({ top: ($(window).height() - hiddenSection.height()) / 2 + 'px',
left: ($(window).width() - hiddenSection.width()) / 2 + 'px'
})
.css({ 'background-color': 'rgba(0,0,0,0.5)' }) //Problem here in IE8
.appendTo('body');
$('span.close').click(function () { $(hiddenSection).fadeOut(); });
});
它适用于所有其他浏览器,不知道为什么它在IE8中失败
我犯了这个错误
jquery.min.js中的属性值无效
非常感谢您的帮助
谢谢简单回答:IE8不支持RGBA属性。它只知道RGB RGBA支持仅在IE9中添加 其他非常旧的浏览器也可能不支持RGBA。然而,除了IE8之外,现在还使用的浏览器并不多 有一些方法可以解决此问题:
- 使用多边形填充,如CSS3Pie。这将允许您在CSS中指定RGBA背景颜色。您仍然无法在JS代码中直接使用它,但您可以更改类来处理它
- 使用类似Modernizer的工具来检测浏览器是否支持此功能,如果不支持,则提供不同的功能
- 使用IE8的
样式实现透明效果。这允许您设置一系列特殊效果,包括不透明度。这是一个非标准的IE特性,在IE9/10中被标准CSS取代,但在某些情况下对于旧IE版本仍然有用-ms filter
- 使用带有alpha通道的小PNG图像作为背景。现在使用背景图像作为纯色背景有点丢脸,但它将实现您在所有浏览器中寻找的结果
- 您有一个输入错误。应该是:
rgba(0,0,0,0.5)
你错过了“a”部分
但是,我不确定IE8是否支持rgba()
…那么,jQuery是否可能为此提供了一个包装器
为了安全起见,我会尝试将背景图像设置为具有透明度的png格式
.css({ 'background-image': 'http://example.com/myimage.png' })
Mikey.`ie8不支持rgba 然而,在i.e8中有一个透明度技巧
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F000000,endColorstr=#7F000000);
#7F000000
的前2位为不透明,后6位为六色代码
7f相当于50%
因此,您的代码应该如下所示:
.css({ 'background-color': 'rgba(0,0,0,0.5)' }) //Problem here in IE8
.css({'filter' : 'progid:DXImageTransform.Microsoft.gradient(startColorstr=#50000000,endColorstr=#50000000);'}) //IE Fallback
资料来源:
编辑:在Derek Henderson评论之后,我将不编写代码,但是如果您仍然只想在IE8中添加代码,请选中以下选项:
.css({ 'background-color': 'rgba(0,0,0,0.5)' })
您可以这样做:
.css({ 'background-color': 'rgb(0,0,0)', 'opacity': '0.5' })
这将适用于所有浏览器。RGBA在IE8中不起作用,因为它是CSS的新功能。你可以使用一个稍微透明的PNG24,它将在未来的IE8中工作:这真的很有帮助。我认为最好只根据需要添加IE8回退,而不是为所有浏览器指定它。确实如此,但这不是这里的问题。。。我只是告诉他,在iCorrect中,透明度是有退路的。我想知道。OP可以使用rgba()并同时使用IE替代渐变属性?过滤器:progid:DXImageTransform.Microsoft.gradient(startColorstr=#VALOR,endColorstr=#VALOR);IE8(失败),于2009年3月19日发布。FF3(工程),2008年6月17日发布。2007年6月11日发布的Safari 3(works)。谷歌Chrome(any,works)于2008年9月2日发布。()@PaulS哇,Chrome真的那么旧吗?感觉就像昨天一样。嗯,现在你让我觉得自己老了:-(感谢Spudley..+1的解释..我将尝试解决您建议的问题。如果元素没有任何子元素、文本或任何边框颜色,那么内部文本会发生什么情况?这是一个解决方案。不,抱歉。尝试得不错,但IE8也不支持CSS
不透明度
。此外,不透明度
将影响元素前景,而原始的rgba
代码只会影响背景。