0

使用此代码块创建覆盖和框。

问题:盒子继承了父母的不透明度,我希望它没有透明度。

#overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: #000;
      filter:alpha(opacity=50);
      -moz-opacity:0.5;
      -khtml-opacity: 0.5;
      opacity: 0.5;
      z-index: 10000;
      text-align: center;        
    }

    #formed{
      background-color: white;      
      width:300px;
      height:200px;
      position:relative;
      left:50%;
      top:50%;
      margin:-100px 0 0 -150px;
    }

<div id="overlay"><div id="formed">Enter Here</div></div>
4

3 回答 3

1

不幸的是,这就是它的工作方式。对于父 div,您可以尝试使用 RGBA 作为背景颜色 - background: rgba(0, 0, 0, 0.5); http://css-tricks.com/rgba-browser-support/

于 2012-05-22T18:04:57.257 回答
0

对于这样的事情(假设您不需要支持 IE7 或更早版本),请像this fiddle 一样将不透明度应用于伪元素。代码:

CSS

#overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      z-index: 10000;
      text-align: center;        
    }

#overlay:after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #000;
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
    z-index: 0;
}

#formed{
    background-color: white;      
    width:300px;
    height:200px;
    position:relative;
    left:50%;
    top:50%;
    margin:-100px 0 0 -150px;
    z-index: 1;
 }
于 2012-05-22T19:14:30.113 回答
0

多谢你们。我能够通过做两件事来解决这个问题:

  • 将孩子 div 带到它的父母之外。 <div id="overlay"></div><div id="formed">Here</div>

  • 改变两个 div 的位置

    #overlay{
          position: fixed;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          background-color: #000;
          filter:alpha(opacity=50);
          -moz-opacity:0.5;
          -khtml-opacity: 0.5;
          opacity: 0.5;
          z-index: 10000;
          text-align: center;
          display: none;
        }
    
        #formed{
          /* for IE */
          filter:alpha(opacity=100);
          /* CSS3 standard */
          opacity:1;
          -webkit-border-radius: 10px;
          -moz-border-radius: 10px;
          border-radius: 10px;
          background-color: white;
          width:300px;
          height:200px;
          position: absolute;
          left:50%;
          top:50%;
          margin:-100px 0 0 -150px;
          z-index: 12000;
          border: 2px solid #eee;
          display: none;
        }
    
于 2012-05-22T21:51:34.820 回答