我制作css菜单。为此,我使用ul
。当我li
向左浮动时,所有li
都会超出ul。我的意思是ul
的高度变为零。如何在向左浮动后在li
内显示ul
。
一种方法是使用一些常见的类创建一个div
标记并添加清除:在css中都可以使用它,但我不希望这样。
我需要更好的解决方案。
请帮助
答案 0 :(得分:21)
只需将overflow: auto;
添加到<ul>
即可。这将使文本不会泄漏到UL之外。
请参阅:http://jsfiddle.net/6cKAG/
但是,根据您正在做的事情,可能更容易制作<li>
display: inline;
。这完全取决于你在做什么!
答案 1 :(得分:7)
如果您为孩子定义float
,则必须清除您的父母。将overflow:hidden
写入您的UL。
ul{
overflow:hidden;
}
或强>
您也可以使用clearfix
方法:
ul:after{
content:'';
clear:both;
display:block;
}
答案 2 :(得分:2)
如果您希望div中的溢出文本自动换行而不是隐藏或制作滚动条,请使用
word-wrap: break-word
属性。
答案 3 :(得分:0)
当浮动元素(菜单项)位于非浮动容器(ul
)内时会发生这种情况。
这可以通过浮动容器来修复(很少可以接受),或者applying a clearfix来解决这个问题。