我试图创建一个横向的卡片列表,其中一次显示3张卡片,其他卡片可以横向滚动,就像这样:
这可以用CSS很容易地完成,但我想用Bootstrap来做。Bootstrap 4 ships with cards通过材质设计而普及,它们和Bootstrap中的其他东西一样易于使用。在这个例子中,它也可以是常规的div
s,而不是卡片。
我正在努力的事情是创建一个X卡(或div)的可滚动容器,其中3个卡一次显示,其他卡向右溢出并可滚动。我不知道如何使用Bootstrap给给予卡片(或div)一个宽度,这样一次显示3张,其他的就在它们旁边的右边。
6条答案
按热度按时间zmeyuzjn1#
更新2021 Bootstrap 5
flexbox utils仍然存在于Bootstrap 5中:https://codeply.com/p/Vo13PAGO7e
更新2019 Bootstrap 4.3+
flexbox方法仍然有效,所以你可以在卡片的容器中使用flexbox utils:https://codeply.com/go/PF4APyGj7F
Original Answer Bootstrap 4 alpha
现在Bootstrap 4 Alpha 6使用了flexbox,这种水平滚动布局就容易多了。您可以简单地使用
flex-row
和flex-nowrap
:https://codeply.com/go/GoFQqQAFhN
0yycz8jy2#
最有效的解决方案如下所示。除了
flex-nowrap
,您还需要设置overflow
属性以防止整个页面扩展。overflow
属性:没有
overflow
属性:yiytaume3#
可以使用bootstrap-horizon
安装
在bootstrap.css之后包含bootstrap-horizon.css
将
.row-horizon
类添加到需要水平滚动的.rows
。为了改善用户体验,bootstrap-horizon覆盖了bootstrap的.col-*-*
类,使基线宽度为90%而不是100%,这允许显示最后一列的一小部分。示例
u2nhd7ah4#
Bootstap 4.3
Scss文件
html文件
由于你是实现一个水平滚动,我敢肯定,所有的卡必须是相同的所有卡,因此
@extend .card-deck;
这将确保所有的卡是相同的高度。ykejflvf5#
为了补充@ikonuk的答案,如果你有一个使用列的布局,并希望在每个卡片都有最小长度的列中添加一个可水平滚动的卡片列表,你可能会发现,当你通过拖动来调整浏览器窗口时,“容器”列会从网格系统中分裂出来,当你使用
设置卡片的最小宽度。
为了避免列被打断,只需为每张卡片的最小宽度使用一个百分比值,或者使用bootstrap的
w-xx
类来设置每张卡片的百分比。(this可能也适用于bootstrap 5,但还没有测试过,因为目前在一个使用bootstrap 4的项目中偶然发现了这一点)
qybjjes16#
网址:
CSS:
现在你可以通过shift+wheel滚动