div水平滚动不工作自动
问题描述:
我想根据内容宽度开发div水平滚动。但是,这并不完美,请帮助我。这工作,如果我设定的上行宽度具体PX但不自动div水平滚动不工作自动
这是我的CSS和HTML
.sri{
width:550px;
height:40px;
margin:auto;
padding:0px;
overflow-x:scroll;
overflow-y:hidden;
}
.sri ul{
margin:0px;
padding:0px;
list-style:none;
width:auto;
}
.sri ul li{
width:auto;
margin:0px 5px;
padding:0px 5px;
float:left;
height:auto;
background:#CCCCCC;
color:#333333;
}
<div class="sri">
<ul>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
<li>something content comes here</li>
</ul>
答
在这种情况下
最简单的解决方法是建立一个庞大的宽度一样width: 9999px
上.sri ul
:
糟糕:它适用于IE8和Chrome,但不适用于Firefox/Opera。调查。
这里的尝试#2:
display: table
和朋友是我能找到得到这个工作始终的唯一途径。
如果内容不超过550px
,将不会有滚动条。
HTML:
<div class="sri">
<ul>
<li>something content comes here</li>
..
</ul>
</div>
CSS:
.sri {
width: 550px;
height: 40px;
margin: auto;
padding: 0;
overflow-x: auto;
overflow-y: hidden
}
.sri ul {
margin: 0;
padding: 0;
list-style: none;
display: table
}
.sri ul li {
margin: 0 5px;
padding: 0 5px;
background: #ccc;
color: #333;
display: table-cell;
white-space: nowrap
}
答
什么时候UL的宽度设置为auto,你所看到的是自然行为浮动元素。
2个选择:
1)你可以使用一个表,而不是一个无序列表中。无论容器宽度如何,这将水平放置。
2)您可以根据您拥有的元素数量(li的宽度* li的数量= UL的总宽度)动态地设置UL的宽度。我在猜测,因为在列表中可能出现可变数目的项目,您正在生成列表服务器端?如果是这种情况,您应该可以很容易地设置UL宽度。只要在没有足够的项目时不滚动 - 只需设置overflow-x:auto;
有些时候我只有一个李的内容在这种情况下我能做什么 – sridhar 2011-02-16 13:15:05