Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery rgba()在IE8中不工作_Jquery_Css_Internet Explorer - Fatal编程技术网

Jquery rgba()在IE8中不工作

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()

我只是坚持使用IE8在jQuery中进行RGBA()操作

到目前为止,我有:

$('.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的
    -ms filter
    样式实现透明效果。这允许您设置一系列特殊效果,包括不透明度。这是一个非标准的IE特性,在IE9/10中被标准CSS取代,但在某些情况下对于旧IE版本仍然有用

  • 使用带有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
      代码只会影响背景。