日期:2014-05-17  浏览次数:20696 次

如何使ul中li元素横向排列且不换行
本帖最后由 moonlight90 于 2013-06-12 20:11:36 编辑

情况如上图所示:
外层div容器宽度固定,ul宽度随li(li宽度固定)的增加而撑开,但是当ul中li的宽度之和大于div时,ul没有撑开,而是li换行了,如何使li不换行?
ul样式如下:
#pic_list
{
display:inline;
white-space: nowrap;
}
li样式如下:
#pic_list li
{
width:80px;
height:80px;
margin:3px;
float:left;
background:red;
display:block;
}
补充说明:即使我将ul的宽度设置为大于div容器宽度的固定值,但是li依然会在div容器的边缘之前换行。
经过研究,应该是float惹的祸,w3cschool的资料如此描述“浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止”,我认为li在浮动时并没有碰到ul的框,而是碰到了ul的父容器div的框,但是依然会换行。
ul li 横向 不换行

------解决方案--------------------
去掉
float:left;
改成
display:inline-block;