读书人

是IE与FF的区别还是position有关问题

发布时间: 2012-02-22 19:36:56 作者: rapoo

是IE与FF的区别还是position问题?
<style>
body {
text-align:center;
}
#positioner{
clear:both;
margin:0 auto;
position:relative;
}

.menubox {
float:left;
width:149px;
height:20px;
margin:0 1px 0 0;
padding:0;
overflow:hidden;
}

.menubox:hover {
height:auto;
}

.menubox ul {
margin:0;
padding:0;
}

.menubox ul li {
list-style:none;
background:#cff;
}

.menubox ul li ul {
display:none;
}

.menubox ul li:hover ul {
display:block;
position:absolute;
margin-top:0px;
left:149px;
}

.menubox a {
display:block;
padding:2px 0 0 0;
width:149px;
height:17px;
border-bottom:1px solid #fff;
font-family:Verdana;
font-size:12px;
text-decoration:none;
color:#000;
}

.menubox a:hover {
background:#ffc;
color:#F00;
}

.menubox ul li.showitem a {
background:#ccc;
}

#item2 li {
background:#fcf;
}

</style>


<body>
<div id= "positioner ">
<div class= "menubox ">
<ul>
<li class= "showitem "> <a href= "# "> Item 1 </a> </li>
<li class= "hiddenitem "> <a href= "# "> Item 1 1 </a> </li>
<li class= "hiddenitem "> <a href= "# "> Item 1 2 > > </a>
<ul id= "item2 ">
<li class= "hiddenitem "> <a href= "# "> Item 1 2 1 </a> </li>
<li class= "hiddenitem "> <a href= "# "> Item 1 2 2 </a> </li>
</ul>
</li>
<li class= "hiddenitem "> <a href= "# "> Item 1 3 </a> </li>
</ul>
</div>
<div class= "menubox ">
<ul>
<li class= "showitem "> <a href= "# "> Item 2 </a> </li>
<li class= "hiddenitem "> <a href= "# "> Item 2 1 </a> </li>


<li class= "hiddenitem "> <a href= "# "> Item 2 2 </a> </li>
<li class= "hiddenitem "> <a href= "# "> Item 2 3 </a> </li>
</ul>
</div>
</div>
</body>


在FF下运行后,按我的理解第三级菜单的Item 1 2 1弹出位置应该和Item 1 2 并列,但实际上却和Item 1 3并列

这是为什么那??

[解决办法]
#item2 li {
background:#fcf;
position: relative;
top: -20px;
}

改成相对定位 然后top -20px 就可以了!这个是因为 li占文本流 所以item 被挤到了下以行
相对定位后就回去了 如果不用相对定位 用块显示li 应该也可以吧!试试 我也是菜鸟 我是这么理解的!
[解决办法]
relative : 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置

读书人网 >CSS

热点推荐