不像听起来那么简单。
我有一个水平滚动的 div,里面的内容是动态的并且可能会改变。
到目前为止,我设法让它在 webkit 中正常运行,但尽我所能,它在 firefox、opera 和可能的 IE 中都无法正常工作。
结构非常简单,一个容器,一个相对定位的父级和一个内部带有列表项的 ul。
<div class="extra-holder">
<div class="extra-holder-inner">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
.extra-holder {
height: 160px;
display: block;
width: 100%;
overflow: hidden;
overflow-x: auto;
white-space: nowrap;
z-index: 41;
line-height: 1;
background-color: white;
position: fixed;
border-bottom: 1px solid #d7d7d7;
-webkit-transition-duration: .2s;
-o-transition-duration: .2s;
-moz-transition-duration: .2s;
transition-duration: .2s;
}
.extra-holder-inner {
position: relative;
display: inline-block;
}
.extra-holder ul {
margin: 0;
padding: 0;
list-style: none;
}
.extra-holder ul li {
margin: 0;
padding: 0;
float: left;
height: 140px;
width: 300px;
white-space:normal;
border-left: 1px solid #d7d7d7;
margin-top: 10px;
padding-left: 20px;
padding-right: 20px;
}
问题是,列表项似乎换行了,我需要它们全部排成一行,用户可以滚动。
我做了一个 jsfiddle,所以你可以得到一个更好的主意。
在 chrome 中 - 可以在 firefox 中向左/向右滚动 - 列表项显示视口宽度允许的数量,然后在下面堆叠。