在这里小提琴:http://jsfiddle.net/csaltyj/3A78u/
我希望子子导航菜单与其父级的顶部对齐(因此顶部:0),但由于某种原因它与父级的父级对齐。我不确定发生了什么......有什么想法吗?
HTML:
<div id="nav">
<ul>
<li><a>Item One</a></li>
<li><a>Item Two</a>
<ul>
<li><a>Item two has babies</a></li>
<li><a>Baby #2</a>
<ul>
<li><a>Sub-babies</a></li>
<li><a>This is fun</a></li>
<li><a>Last Item</a></li>
</ul>
</li>
<li><a>SubSub</a>
<ul>
<li><a>Another Item</a></li>
<li><a>Another!</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
CSS:
#nav {
height: 40px;
}
#nav ul {
list-style: none;
font-family: Arial, sans-serif;
font-size: 0.8em;
}
/* When mousing over any LI, reveal its UL if any */
#nav > ul li:hover > ul {
display: block;
}
/* For all links */
#nav a {
text-decoration: none;
color: #000;
}
/* Main nav styling */
#nav > ul > li > a {
padding: 1em;
}
#nav a:hover {
color: red;
}
#nav > ul > li {
float: left;
border: 1px solid #999;
}
/* Subnav styling */
#nav > ul ul {
display: none;
position: absolute;
font-size: 1em;
background: #eee;
padding: 0.5em;
border: 1px solid #999;
}
/* Subsubnav styling */
#nav > ul ul ul {
left: 50px;
top: 0;
width: 150px;
position: absolute;
}
#content {
}
答案 0 :(得分:2)
您需要将position: relative
添加到“级别2”li
元素:
#nav > ul ul li {
position: relative
}
这是一个婴儿排成一列的版本:http://jsfiddle.net/3A78u/2/
如果您想使用>
,则为#nav > ul > li > ul > li
。
答案 1 :(得分:1)
'top'属性相对于第一个非静态定位的父级。在这种情况下,它是UL元素(绝对定位)。你需要添加'position:relative;'到列表项中以获取内部元素以相对于它对齐。