2012-11-07 77 views
0

我有一个ul工作正常,但是当我添加一个嵌套ul上面的li,移动。有谁知道为什么?如何解决它?通过嵌套列表移动

我这里的例子:http://jsfiddle.net/y5DtE/

HTML:

<ul> 
    <li> first 
     <ul> 
      <li> 1.2 </li> 
     </ul> 
    </li> 
    <li> second </li> 
    <li> third eally, really long </li> 
</ul>​ 

CSS:

body { 
    margin:0px; 
} 

ul { 
    margin:40px auto; 
    list-style-type:none; 
    padding:0; 
    text-align: center; 
} 

ul li { 
    padding: 0 15px; 
    margin-right: 5px; 
    background-color: #f2f2f2; 
    display: inline-block; 
    height: 30px; 
    line-height: 30px; 
    font-family: verdana; 
    font-size:10px; 
    color: #666 
} 

ul li:last-child { margin-right: 0px; } 

ul li ul { 
    margin:5px 0; 
}​ 
+0

有关使用表如何? – Vucko

回答

1
li { 
    position: relative; 
} 

ul ul { 
    position: absolute; 
    left: 0; 
} 
+0

它的工作原理。如果我明白你相对于李的位置绝对有能力。但我还是不明白为什么没有这个,李先生动了? – Nrc

+0

,因为元素默认情况下将自己定位到其父元素的底部;随着第一个李变得更大,看起来好像李的其余部分放下了自己,事实上他们在相同的基线上。当你使用position:absolute时,ul会从li的上下文中取出,并且它们再次共享相同的高度。 – Ozrix

+0

有没有办法来居中嵌套李或给他们相同的父母(当父宽度取决于单词的宽度) – Nrc

1

为了使父元素下的子表去申请这样的:

ul li { 
    display: block; 
    float: left; 
} 

为防止漂浮的子项中添加以下规则:

ul li ul li{ 
    float: none; 
} 
+0

我想先把1.2放在下面,不要旁边。问题是,当我把1.2 – Nrc

+0

“第一个”移动如何:http://codepen.io/anon/pen/uvItg – Serg

+0

好吧,它解决了问题,但菜单不居中。如果我把你的浮球:留在ul里更好。然后问题出现,嵌套不尊重父母。我仍然不明白为什么没有浮动:左,李移动?无论如何,你解决了第一个问题。谢谢!。 – Nrc