绝对定位的儿童div的100%高度

时间:2012-07-08 17:37:59

标签: css navigation height css-position

我正在制作一个导航栏,其中的孩子将在不同的框中显示,就像http://www.boffi.com/EN/Collections/bathrooms/b14.aspx一样。我设法使用绝对定位来分离孩子,但是不能让子元素背景具有100%的高度。它是一个列表元素,所以如果我把高度:100%,底部的两个主要导航元素消失。请帮忙!这是我的HTML:

<ul id="mainmenu">
     <li id="liHome" class="active">
         <a href="#item-x1y1" class="panel" rel="none" id="Home">Home</a>
     </li>
     <li id="liServices" class=" ">
         <a href="#item-x1y2" class="panel" rel="SubMenuY2" id="Services">Services</a>
         <div class="child">
         <ul style="" id="SubMenuY2" class="submenu">
             <li><a href="#">Sub-item 1</a></li>
             <li><a href="#">Sub-item 2</a></li>
         </ul>
         </div>
     </li>
     <li id="liEnvironment">
         <a href="#item-x1y3" class="panel" rel="none" id="Environment">Environment</a>
     </li>
     <li id="liCareer">
         <a href="#item-x1y4" class="panel" rel="none" id="Career">Career</a>
     </li>
     <li id="liContact">
         <a href="#item-x1y5" class="panel" rel="none" id="Contact">Contact</a>
     </li>
 </ul>

和css

body, html{
height:100%;
}
#mainmenu{
background:black;
color: white;
width:130px;
position:relative;
top:0;
height:100%
}
#mainmenu li a {
color:white;
}

ul.submenu{
position:absolute;
background:blue;
width:130px;
}

div.child{
position:relative;
margin-left:130px;
}

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

我简化了你的代码......好吧我实际上刚刚用div删除class="child",因为你并不真的需要它。

然后,我所做的就是:

ul.submenu{
  position:absolute;
  left: 130px; top: 0;
  background:blue;
  width:130px;
  height: 100%;
}

看看小提琴:http://jsfiddle.net/joplomacedo/rqqju/

这是你想要的吗?