代码之家  ›  专栏  ›  技术社区  ›  Martin

CSS:Opacity-Div在IE7中不显示?

  •  1
  • Martin  · 技术社区  · 15 年前

    我创建了一个覆盖,在执行ajax请求时使用它来显示。在firefox中它工作得很好!但在IE7中我看不到Div。

    我的div很简单它是继Body之后的第一个元素

    <div id="overlay">
       &nbsp;
    </div>
    

    我的css在这里

    #overlay {
    z-index:1000;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    width:100%;
    background:#000;
    opacity:0.45;
    -moz-opacity:0.45;
    filter:alpha(opacity=45);
    display:none;
    }
    

    我认为这可能与我在div中放置一些文本时的大小有关,我在IE7上没有看到,但在firefox上看到了。

    有人知道它不工作的地方吗?我有点不知所措

    我试着去掉显示器:没有和它一样,我还插入了高度:自动和仍然没有乐趣。

    我正在使用jquery来显示和隐藏它,当然,这不是问题,因为我删除了Display:none,我看不到应该位于其余内容之上的div

     $("#overlay").show();
    

    有什么想法吗?

    提前谢谢

    2 回复  |  直到 15 年前
        1
  •  1
  •   fcalderanfcalderan    15 年前

    因为div是绝对定位的,所以应该指定一个高度(不同于auto)。可以声明高度:100%到 #overlay ,然后也是 html, body { height: 100% } 当你打开覆盖层 html, body { height: auto } 关闭覆盖层时);

    另一种(更好的)方法是通过javascript(例如document.body.offthesight)计算body元素的高度,然后将其作为高度分配给覆盖层

    document.getElementById('overlay').style.height = document.body.offsetHeight + 'px';

    这将作为

    $("#overlay").height($('body').height()).show();
    
        2
  •  0
  •   Damien    15 年前

    请尝试以下其他CSS:

    #overlay {
        zoom: 1;
    }