这是我的HTML:
<div class="scrollingBox">
<div class="container">
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
<div class="item">Item</div>
</div>
</div
这是我的CSS:
.scrollingBox {
height:100px;
width:300px;
overflow:auto;
}
.item {
float:left;
height:60px;
margin:5px;
width:100px;
}
.container
可以包含任意数量的.item
s。
目前我的问题是.container
永远不会比.scrollingBox
更宽,滚动框最后会有一个垂直滚动条,而.item
最终会堆叠垂直。我给.container
一个固定的高度,但.item
的堆栈垂直超出这个固定的高度。
我希望.container
没有固定宽度,因此可以使用任意数量的项目。我希望滚动条是水平的,我也希望.item
水平堆叠。
我的问题:
我应用什么CSS来.container
水平制作.item
堆栈?
答案 0 :(得分:6)
通过使用float
属性,元素将从文档正常流中删除。
您可以将其显示类型更改为inline-block
,同时将其保留在内联流中,并使用white-space: nowrap;
作为容器(.scrollingBox
)以使内联项保持在彼此旁边,如下所示
你走了:
.scrollingBox {
height:100px;
width:300px;
overflow:auto;
white-space: nowrap; /* Suppress line breaks */
}
.item {
display: inline-block; /* Display the items as inline-block */
vertical-align: top; /* Align the inline items vertically at the top */
height:60px;
width:100px;
}
<强> WORKING DEMO 强>
注意:您可以参考my answer删除内联块元素之间的空白区域。
答案 1 :(得分:1)
将display:inline-block
添加到您的.item
中
display
的默认DIV
为block
,这会导致垂直堆叠,但display:inline-block
会使所有DIV
自我排列在水平线< / p>
变量显示选项的区别:
内嵌元素:
阻止元素:
内联块元素: