19

我正在制作一个 CSS 菜单。为此,我使用ul. 当我li向左浮动时,所有li的都会超出 ul。我的意思是高度ul变为零。左浮动后如何li在内部显示。ul

一种方法是div用一些公共类制作一个标签并添加 clear: both 在css中,但我不想要这个。

我该如何解决这个问题?

4

4 回答 4

29

只需添加overflow: auto;<ul>. 这将使文本不会泄漏到 UL 之外。

见:http: //jsfiddle.net/6cKAG/


但是,根据您的操作,制作<li> display: inline;. 这完全取决于你在做什么!

见:http: //jsfiddle.net/k7Wqx/

于 2012-06-27T05:36:16.613 回答
11

如果你float给你的孩子定义,那么你必须清除你的父母。写信overflow:hidden给你的 UL。

ul{
 overflow:hidden;
}

或者 您也可以clearfix为此使用方法:

ul:after{
 content:'';
 clear:both;
 display:block;
}

阅读此http://css-tricks.com/snippets/css/clear-fix/

于 2012-06-27T05:30:08.693 回答
4

如果您希望 div 中溢出的文本自动换行而不是隐藏或制作滚动条,请使用

word-wrap: break-word

财产。

于 2017-09-02T09:40:18.790 回答
0

当浮动元素(菜单项)位于非浮动容器 ( ul) 内时,就会发生这种情况。

这可以通过浮动容器来修复(很少接受),或者应用一个明确解决这个问题的 clearfix 。

于 2012-06-27T05:34:26.163 回答