Html 生成列表始终在固定宽度的div中显示一行元素
我正在努力使列表始终只在一行上显示元素 为了更好地理解这一点,让我首先展示一些代码: html结构如下所示:Html 生成列表始终在固定宽度的div中显示一行元素,html,css,css-float,Html,Css,Css Float,我正在努力使列表始终只在一行上显示元素 为了更好地理解这一点,让我首先展示一些代码: html结构如下所示: <div id="tab-content"> <div id="part-list"> <ul> <li></li> <li></li> <li></li> <li><
<div id="tab-content">
<div id="part-list">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
#tab-content{
overflow: auto;
height: 100%;
position:relative;
background-color: #373837;
color: white;
padding-left:20px;
padding-right:20px;
}
#tab-content ul{
display: block;
list-style: none outside none;
overflow: auto;
white-space: nowrap;
}
#tab-content ul li{
display: block;
float: left;
padding: 7px;
margin-right: 4px;
font-style: italic;
color: #cccccc;
}
我需要ul将其项目放在一行上,无论它是否大于包含的div。如果它确实大于滚动条应显示的值。现在它只是被包装起来
我在#部件列表上使用jscrollPane,因为我在那里有一个自定义滚动条
PS:指定一个比包含的div更大的宽度(比如150%)不是一个解决方案,因为列表的内容是从db中拉出的,其长度是动态的。使用css
显示:内联块
而不是display:block
,使用display:inline block
使用*float:left!重要;/*对于IE 7*/
和\u float:左!重要;/*对于IE 6*/
。因为禁用:内联块代码>不支持IE 6和7
另一种解决方案是,您可以对所有浏览器使用float:left
,而不是使用display:inline block将float:left
更改为display:inline
。实例:
然而,将其从“块”更改为“内联”时,填充/高度似乎有所不同。此处的键是在ul
上设置一个高度,例如30px,然后在li
上设置一个相同值的行高度,即30px。我还从这个版本的ul
中删除了overflow:auto
,因为它是多余的,因为div
已经完成了这个工作。第二个例子:非常感谢,你帮我省下了很多咖啡和香烟!我已经将前面的答案标记为已接受,但您的答案也有效,是一个完整的解决方案。我希望任何读过这篇文章的人都会一直读下去,因为你的解决方案才是我真正想要的。
#tab-content ul li{
display: inline;
padding: 7px;
margin-right: 4px;
font-style: italic;
color: #cccccc;
}