bootstrap 行中的水平可滚动 div
Horizontal scrollable div's in a bootstrap row
我正在尝试制作水平可滚动的 bootstrap 行。该行包含包裹在 div 中的客户评论。每个推荐的宽度div是33.333%
.
white-space: nowrap
和 display: inline-block
不起作用。
我做错了什么?
<div class="row">
<div class="col-lg-12 text-center">
<div class="section-title">
<div class="testimonial_group">
<div class="testimonial">...</div>
<div class="testimonial">...</div>
<div class="testimonial">...</div>
<div class="testimonial">...</div>
...
</div>
</div>
</div>
</div>
试试这个:
section-title {
width: 100%;
overflow-x: scroll(or auto);
}
将这些行放入您的 CSS 文件
.section-title {
overflow: scroll;
overflow-x: scroll;
overflow-y:hidden
}
x 表示水平,y 表示垂直,在父级 div 中应用 class 代码,其中嵌套了许多 div。
请检查。这是你想要达到的目标吗?
/* The heart of the matter */
.testimonial-group > .row {
overflow-x: auto;
white-space: nowrap;
}
.testimonial-group > .row > .col-xs-4 {
display: inline-block;
float: none;
}
/* Decorations */
.col-xs-4 { color: #fff; font-size: 48px; padding-bottom: 20px; padding-top: 18px; }
.col-xs-4:nth-child(3n+1) { background: #c69; }
.col-xs-4:nth-child(3n+2) { background: #9c6; }
.col-xs-4:nth-child(3n+3) { background: #69c; }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container testimonial-group">
<div class="row text-center">
<div class="col-xs-4">1</div><!--
--><div class="col-xs-4">2</div><!--
--><div class="col-xs-4">3</div><!--
--><div class="col-xs-4">4</div><!--
--><div class="col-xs-4">5</div><!--
--><div class="col-xs-4">6</div><!--
--><div class="col-xs-4">7</div><!--
--><div class="col-xs-4">8</div><!--
--><div class="col-xs-4">9</div>
</div>
</div>
对于Bootstrap 4
谢谢Hector for the !
https://codepen.io/glebkema/pen/xxOgaMm
/* The heart of the matter */
.testimonial-group > .row {
display: block;
overflow-x: auto;
white-space: nowrap;
}
.testimonial-group > .row > .col-4 {
display: inline-block;
}
/* Decorations */
.col-4 { color: #fff; font-size: 48px; padding-bottom: 20px; padding-top: 18px; }
.col-4:nth-child(3n+1) { background: #c69; }
.col-4:nth-child(3n+2) { background: #9c6; }
.col-4:nth-child(3n+3) { background: #69c; }
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css">
<div class="container testimonial-group">
<div class="row text-center">
<div class="col-4">1</div><!--
--><div class="col-4">2</div><!--
--><div class="col-4">3</div><!--
--><div class="col-4">4</div><!--
--><div class="col-4">5</div><!--
--><div class="col-4">6</div><!--
--><div class="col-4">7</div><!--
--><div class="col-4">8</div><!--
--><div class="col-4">9</div>
</div>
</div>
在 Bootstrap 4 中您需要添加
flex-wrap: nowrap;
至
.testimonial-group > .row
除了 Gleb 的回答
Flexbox 方法
/* The heart of the matter */
.testimonial-group > .row {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
}
.testimonial-group > .row > .col-xs-4 {
flex: 0 0 auto;
}
/* Decorations */
.col-xs-4 { color: #fff; font-size: 48px; padding-bottom: 20px; padding-top: 18px; }
.col-xs-4:nth-child(3n+1) { background: #c69; }
.col-xs-4:nth-child(3n+2) { background: #9c6; }
.col-xs-4:nth-child(3n+3) { background: #69c; }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container testimonial-group">
<div class="row text-center">
<div class="col-xs-4">1</div><!--
--><div class="col-xs-4">2</div><!--
--><div class="col-xs-4">3</div><!--
--><div class="col-xs-4">4</div><!--
--><div class="col-xs-4">5</div><!--
--><div class="col-xs-4">6</div><!--
--><div class="col-xs-4">7</div><!--
--><div class="col-xs-4">8</div><!--
--><div class="col-xs-4">9</div>
</div>
</div>
我不明白为什么所有这些实际上只适用于没有文本的子元素的 no-wrap 和 flex 属性如此费力。如果子元素中有文本,
white-space: nowrap;
属性使整个文本在一行中展开,结果文本与其他所有内容重叠并破坏了整个布局。
解决方法就简单多了。简单的,给父元素如下
display: flex;
overflow-x: auto;
然后到子元素下面
min-width: 25%;
注意:尺寸 3 为 25%,尺寸 4 为 33.33333%,尺寸 6 为 50%,依此类推。
你有它。基于 bootstrap 列的水平滚动 div 布局。
这是一个干净的样本。 Fiddle
您可以使用:
class="text-nowrap overflow-auto"
考虑这个例子:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<div class="list-group list-group-horizontal text-nowrap overflow-auto">
<a href="#" class="list-group-item list-group-item-action active">
Cras justo odio
</a>
<a href="#" class="list-group-item list-group-item-action">Dapibus ac facilisis in</a>
<a href="#" class="list-group-item list-group-item-action">Morbi leo risus</a>
<a href="#" class="list-group-item list-group-item-action">Porta ac consectetur ac</a>
<a href="#" class="list-group-item list-group-item-action disabled" tabindex="-1" aria-disabled="true">Vestibulum at eros</a>
</div>
要在没有任何 css 或所有不需要的 div 的情况下实现预期结果:getbootstrap.com/list-group.
我正在尝试制作水平可滚动的 bootstrap 行。该行包含包裹在 div 中的客户评论。每个推荐的宽度div是33.333%
.
white-space: nowrap
和 display: inline-block
不起作用。
我做错了什么?
<div class="row">
<div class="col-lg-12 text-center">
<div class="section-title">
<div class="testimonial_group">
<div class="testimonial">...</div>
<div class="testimonial">...</div>
<div class="testimonial">...</div>
<div class="testimonial">...</div>
...
</div>
</div>
</div>
</div>
试试这个:
section-title {
width: 100%;
overflow-x: scroll(or auto);
}
将这些行放入您的 CSS 文件
.section-title {
overflow: scroll;
overflow-x: scroll;
overflow-y:hidden
}
x 表示水平,y 表示垂直,在父级 div 中应用 class 代码,其中嵌套了许多 div。
请检查。这是你想要达到的目标吗?
/* The heart of the matter */
.testimonial-group > .row {
overflow-x: auto;
white-space: nowrap;
}
.testimonial-group > .row > .col-xs-4 {
display: inline-block;
float: none;
}
/* Decorations */
.col-xs-4 { color: #fff; font-size: 48px; padding-bottom: 20px; padding-top: 18px; }
.col-xs-4:nth-child(3n+1) { background: #c69; }
.col-xs-4:nth-child(3n+2) { background: #9c6; }
.col-xs-4:nth-child(3n+3) { background: #69c; }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container testimonial-group">
<div class="row text-center">
<div class="col-xs-4">1</div><!--
--><div class="col-xs-4">2</div><!--
--><div class="col-xs-4">3</div><!--
--><div class="col-xs-4">4</div><!--
--><div class="col-xs-4">5</div><!--
--><div class="col-xs-4">6</div><!--
--><div class="col-xs-4">7</div><!--
--><div class="col-xs-4">8</div><!--
--><div class="col-xs-4">9</div>
</div>
</div>
对于Bootstrap 4
谢谢Hector for the
https://codepen.io/glebkema/pen/xxOgaMm
/* The heart of the matter */
.testimonial-group > .row {
display: block;
overflow-x: auto;
white-space: nowrap;
}
.testimonial-group > .row > .col-4 {
display: inline-block;
}
/* Decorations */
.col-4 { color: #fff; font-size: 48px; padding-bottom: 20px; padding-top: 18px; }
.col-4:nth-child(3n+1) { background: #c69; }
.col-4:nth-child(3n+2) { background: #9c6; }
.col-4:nth-child(3n+3) { background: #69c; }
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css">
<div class="container testimonial-group">
<div class="row text-center">
<div class="col-4">1</div><!--
--><div class="col-4">2</div><!--
--><div class="col-4">3</div><!--
--><div class="col-4">4</div><!--
--><div class="col-4">5</div><!--
--><div class="col-4">6</div><!--
--><div class="col-4">7</div><!--
--><div class="col-4">8</div><!--
--><div class="col-4">9</div>
</div>
</div>
在 Bootstrap 4 中您需要添加
flex-wrap: nowrap;
至
.testimonial-group > .row
除了 Gleb 的回答
Flexbox 方法
/* The heart of the matter */
.testimonial-group > .row {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
}
.testimonial-group > .row > .col-xs-4 {
flex: 0 0 auto;
}
/* Decorations */
.col-xs-4 { color: #fff; font-size: 48px; padding-bottom: 20px; padding-top: 18px; }
.col-xs-4:nth-child(3n+1) { background: #c69; }
.col-xs-4:nth-child(3n+2) { background: #9c6; }
.col-xs-4:nth-child(3n+3) { background: #69c; }
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<div class="container testimonial-group">
<div class="row text-center">
<div class="col-xs-4">1</div><!--
--><div class="col-xs-4">2</div><!--
--><div class="col-xs-4">3</div><!--
--><div class="col-xs-4">4</div><!--
--><div class="col-xs-4">5</div><!--
--><div class="col-xs-4">6</div><!--
--><div class="col-xs-4">7</div><!--
--><div class="col-xs-4">8</div><!--
--><div class="col-xs-4">9</div>
</div>
</div>
我不明白为什么所有这些实际上只适用于没有文本的子元素的 no-wrap 和 flex 属性如此费力。如果子元素中有文本,
white-space: nowrap;
属性使整个文本在一行中展开,结果文本与其他所有内容重叠并破坏了整个布局。
解决方法就简单多了。简单的,给父元素如下
display: flex;
overflow-x: auto;
然后到子元素下面
min-width: 25%;
注意:尺寸 3 为 25%,尺寸 4 为 33.33333%,尺寸 6 为 50%,依此类推。 你有它。基于 bootstrap 列的水平滚动 div 布局。
这是一个干净的样本。 Fiddle
您可以使用:
class="text-nowrap overflow-auto"
考虑这个例子:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<div class="list-group list-group-horizontal text-nowrap overflow-auto">
<a href="#" class="list-group-item list-group-item-action active">
Cras justo odio
</a>
<a href="#" class="list-group-item list-group-item-action">Dapibus ac facilisis in</a>
<a href="#" class="list-group-item list-group-item-action">Morbi leo risus</a>
<a href="#" class="list-group-item list-group-item-action">Porta ac consectetur ac</a>
<a href="#" class="list-group-item list-group-item-action disabled" tabindex="-1" aria-disabled="true">Vestibulum at eros</a>
</div>
要在没有任何 css 或所有不需要的 div 的情况下实现预期结果:getbootstrap.com/list-group.