首先,说明我的意图,1、我想让div产生阴影效果。
2、我希望这个div能否覆盖<select>,所以我把div里放了一个iframe来做垫底。
3、我希望iframe一定是透明的。所以,我写了以下代码:
<select style="width:300px;"></select>
<div style="overflow:hidden;position:absolute;left:50;top:10;overflow:hidden;width:200px;height:200px;filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=4, OffY=4, Color='green', Positive='true',gradientType= '0');">
<div style="background-color:#003366;">我希望垫底的iframe是透明的,我也想要div的阴影效果。</div> <iframe style="z-index:-1;position:absolute;left:0;top:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe></div>这段代码,运行后,不仅div里的内容看不到了,而且,也没有阴影效果。我要求iframe一定要在div内,如果放在div外的话,div尺寸变化了,我还得改变iframe的尺寸;iframe一定要是透明的,且div里面的内容能显示。大家看能否帮我实现。

解决方案 »

  1.   

    iframe一定是透明 ,就遮挡不了select 了!
    iframe不透明,div 看起来就会有背景!其实是iframe 背景!
    通常的解决方法是,IE6 ,设置select 不可见!隐藏(关闭)弹出层后,在设置 select 可见楼主可以参考一下这个 弹出层
      

  2.   

    to :1楼的 hch126163(老胡)
    你说的不对,你运行以下我的代码,就可以看到我的iframe是透明的,而且遮住了<select>的一部分,所以,iframe透明也是可以遮住select的。
      

  3.   

    我是楼主,如果帖子这个问题解决不了,帮我解决下面这个问题也可以:下面这个问题解决了,那么我这篇帖子提出的问题可以忽略是这样子的:iframe把div的左边线挡住了,我不希望iframe挡住div边线,而且要iframe在div内,而且iframe的左边与div的左边外侧对齐<body style="background-color:gray;">
    <div style="position:absolute;left:100;top:150;border-left-width:6px;border-left-color:#003366;border-left-style:solid;">
    <iframe style="position:absolute;left:-6;margin-top:0;z-index:-2;" frameborder=0 border=0></iframe>
    iframe把div的左边线挡住了,我不希望iframe挡住div边线,而且要iframe在div内,而且iframe的左边与div的左边外侧对齐
    </div>
    </body>大家继续帮我看看吧,谢谢了。
      

  4.   

    ie6 的问题?ie6 的 div 不能放到 select 上, 即使改 zindex
    非要的话,iframe 可以放到 select 上, 无论div 还是什么的,都要方在 iframe 里, 楼主搞反了总之,  只有 iframe 可以放到 select 上面
      

  5.   

    To: madpc (四两搏小千金) 你说的和没说一样,不过还是要谢谢您。
      

  6.   

    To: madpc (四两搏小千金) 你说的和没说一样,不过还是要谢谢您。
      

  7.   

    <iframe frameborder="0" 
            tabindex="-1" 
            src="transparent.gif" 
            style="display:none;position:absolute;z-index:0;filter:Alpha(Opacity='0');" 
    />;transparent.gif是一个1x1的透明像素图片
      

  8.   


    <iframe frameborder="0" 
            tabindex="-1" 
            src="transparent.gif" 
            style="position:absolute;z-index:0;filter:Alpha(Opacity='0');" 
    />;
    这个iframe并不是在div内部,所以要注册window.resize事件,纠正 iframe的位置。
      

  9.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <select style="width:300px;">
       <option>a</option>
       <option>b</option>
       <option>c</option>
    </select>
    <div style="overflow:hidden; position:absolute; z-index:20; left:8px; top:16px; overflow:hidden; width:300px; height:200px;filter
    :progid:DXImageTransform.Microsoft.dropshadow(OffX=4, OffY=4, Color='green', Positive='true',gradientType= '0');">
      <div style="position:absolute;left:0px;top:0px;width:100%;height:100%;z-index:10; background:#ff0000;filter:alpha(opacity=100);">this is a test.</div>
      <div style="position:absolute;left:0;top:0;width:100%;height:100%;z-index:0;"><iframe width="100%" height="100%" style="filter:alpha(opacity=0);"></iframe></div>
    </div>
    </body>
    </html>
      

  10.   

    filter会被子元素继承。为了使文字无filter效果,方法一如上给文字所在div加背景色;方法二将文字所在div独立出来,如下:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head><body>
    <p>
      <select style="width:300px;">
        <option>a</option>
        <option>b</option>
        <option>c</option>
      </select>
      </p>
    <p>fdaf</p>
    <p>fdasfd
      da </p>
    <div style="overflow:hidden; position:absolute; z-index:20; left:8px; top:16px; overflow:hidden; width:300px; height:200px;filter
    :progid:DXImageTransform.Microsoft.dropshadow(OffX=4, OffY=4, Color='green', Positive='true',gradientType= '0');">
      <div style="position:absolute;left:0;top:0;width:100%;height:100%;z-index:0;"><iframe width="100%" height="100%" style="filter:alpha(opacity=0);"></iframe></div>
    </div>
    <div style="position:absolute;left:8px;top:16px;width:300px;height:auto;z-index:30;">this is a test.</div>
    </body>
    </html>
      

  11.   

    我是楼主:我的这个问题,想让div产生阴影效果。
    1、我希望这个div能否覆盖<select>,所以我把div里放了一个iframe来做垫底。
    2、我希望iframe一定是透明的。这两个效果在ie下经过测试,是不能实现的。解决的办法是不要把这两个效果应用于同一个div。具体一点,就是在div内部的div上使用阴影效果。
      

  12.   

    用jQuery自带的弹出层 很好用。
      

  13.   

    我给回复的人给分了,出于道义。解决的办法是不要把这两个效果应用于同一个div。具体一点,就是在div内部的div上使用阴影效果。