我想在水平滚动div中显示多个记录。我正在使用Twitter Bootstrap并设置了一个div行,每个数据记录都表示为一列。
如果我需要为这部分转储Bootstrap网格那么这很好,我并没有按照设计的方式使用它我怀疑...如果我不使用Twitter Bootstrap这部分那么我的问题是几乎与Prevent floated divs from wrapping to new line相同。在这个问题上接受的答案的问题是,它假设您可以计算容器的总宽度。在我的例子中,项目div的数量是动态的。
我正在寻找一个纯CSS / HTML解决方案。如果需要Javascript,我使用的是没有jQuery的AngularJS。
我的例子:http://jsfiddle.net/V5zWT/2/
CSS
.DocumentList
{
overflow-x:scroll;
overflow-y:hidden;
height:200px;
width:100%;
padding: 0 15px;
}
.DocumentItem
{
border:1px solid black;
padding:0;
height:200px;
}
HTML
<div class="DocumentList">
<div class="row">
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 DocumentItem">
Record 12345
<br/>
More data
<br />
</div>
</div>
</div>
从小提琴中可以看到,只显示前4个记录。由于CSS浮动(我假设),滚动条不会激活,其他记录也不会显示。如果我不隐藏溢出,那么我可以向下滚动并查看隐藏的记录,但这不是我想要的。
答案 0 :(得分:25)
我设法使用几乎股票Twitter Bootstrap:
开始工作小提琴:http://jsfiddle.net/V5zWT/12/
我使用了list-inline类的无序列表。默认情况下,当它到达容器的边缘时仍然会换行,所以我调整了list-inline类。
.list-inline {
white-space:nowrap;
}
<div class="DocumentList">
<ul class="list-inline">
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
<li class="DocumentItem">
<span>Test Data1</span>
</li>
</ul>
</div>
答案 1 :(得分:15)
要允许水平滚动,请检查此github link
在bootstrap-horizon.css
之后下载并添加bootstrap.css
。如
<link rel="stylesheet" href="css/bootstrap.min.css"/>
<link rel="stylesheet" href="css/bootstrap-horizon.css">
示例代码
div class="row row-horizon">
<div class="col-md-6">
<h1>Test</h1>
</div>
<div class="col-md-6">
<h1>Test</h1>
</div>
<div class="col-md-6">
<h1>Test</h1>
</div>
<div class="col-md-6">
<h1>Test</h1>
</div>
</div>`
它对我有用。
答案 2 :(得分:1)
也许这会对你有所帮助:
如果.DocumentItem
宽度已修复,您可以计算scroll元素的宽度并动态设置它。
<script type="text/javascript">
var totalWidth = $('.DocumentItem').length * $('.DocumentItem').width();
$('.row').css('width', totalWidth + 'px');
</script>