+ -
当前位置:首页 → 问答吧 → 子菜单浮动问题遮盖问题

子菜单浮动问题遮盖问题

时间:2011-01-21

来源:互联网

复制内容到剪贴板
代码:
<div id="page">
  <div id="pheader">
    <ul class="menu">
      <li>首页</li>
      <li>
        <a>产品</a>
        <ul class="submenu">.............</ul>
      </li>
    </ul>
  </div>
  <div id="pbody"></div> <!--pbody很高-->
  <div id="pfooter"></div>
</div>
我现在写的是
复制内容到剪贴板
代码:
#pheader { overflow:hidden; }
#pheader ul.menu li { position:relative; ........  float:left; }
#pheader ul.menu li ul.submenu { top:100%; position:absolute; }   /*这样的话子菜就直接在对应的LI的下面了*/
这样是可以的, 但是问题来了。在pbody里面的第一个元素是<div id="banner">它的第一个子元素有relative和孙元素absolute的关系,但是这按理来说不是问题,不会给menu带来什么影响。
banner:
<div id="banner">   无样式
<div class="slidebox">      position:relative
<em></em> <!--loading-->    position:absolute; left:10; top:10;
<div class="container"></div>    <!--加载IMG-->   position:relative;   加载后的图片position为absolute; z-index由JS变换
<div class="sidebar">    <!--侧边栏-->    position:absolute; right:0; top:0
<ul><li></li>....</ul>     <!--点击用的标题-->
</div>
</div>
</div>
事实上在FF里面也是没问题的。 但是不知道为什么在IE6 7里面submenu被pbody中的这个banner全部遮住了。这是什么造成的?
预览地址:http://www.jc-space.com/ui.easy/index.htm 可以用FF的firebug看CSS

谢谢。

作者: kenchef   发布时间: 2011-01-21

已解决。
把#pheader ul.menu li { position:relative; ........  float:left; } 加上z-index:999;就行了。

结论:
原来页面中的relative对象也是需要z-index来控制的。
后出现在文档流的DOM元素比先出现的默认z-index大(对与IE)。。。。。   反正解决了。

作者: kenchef   发布时间: 2011-01-21