我是Bootstrap的初学者,只是以下代码的一个问题:
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="row border">
<div class="col-lg-4 border">One</div>
<div class="col-lg-4 border">Two</div>
<div class="col-lg-4 border">Three</div>
</div>
</div>
如果我将浏览器窗口的大小调整为不适合lg断点的较小大小,则可以看到这三个元素相互堆叠。 但是,如果我删除断点,就像:
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="row border">
<div class="border">One</div>
<div class="border">Two</div>
<div class="border">Three</div>
</div>
</div>
这三个元素就像内联元素,而不是相互堆叠,为什么?因为只要我停留在小窗口中,它实际上就是col-lg-4的相同代码,所以lg断点没有被触发。
答案 0 :(得分:4)
这是因为Bootstrap行是display:flex
,而默认的flexbox方向是flex-direction:row
。如果您删除.row
,则会看到内部的div堆栈。
<div class="container">
<div class="border">
<div class="border">One</div>
<div class="border">Two</div>
<div class="border">Three</div>
</div>
</div>
演示:https://www.codeply.com/go/H2y9xDXLv8
也请注意,the .row
should only be used to contain grid columns (.col*
)。
答案 1 :(得分:1)
这是引导程序中的相关CSS代码(我评论了不相关的部分)
.row {
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
/*margin-right: -15px;*/
/*margin-left: -15px;*/
}
/*.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, */
.col-lg-4,
/*.col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto */ {
/*position: relative;*/
width: 100%;
/*min-height: 1px;*/
/*padding-right: 15px;*/
/*padding-left: 15px;*/
}
@media (min-width: 992px)
.col-lg-4 {
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
您看到:
.row
有display: flex
。 .row
的每个直接子元素都是带有default value for flex-basis
of auto
的弹性项目。 auto
弹性项目仅占用所需空间(如果未提供宽度)
.col-lg-4
的宽度始终为100%,但在大屏幕(> = 992px)上,它的flex-basis
为33.333333%
(三分之一)。
如果删除col-lg-4
类,则这些元素仍是未设置flex-basis
的弹性项目,因此具有隐式flex-basis: auto
答案 2 :(得分:-1)
Bootstrap网格系统有五个类:
.col- (extra small devices - screen width less than 576px)
.col-sm- (small devices - screen width equal to or greater than 576px)
.col-md- (medium devices - screen width equal to or greater than 768px)
.col-lg- (large devices - screen width equal to or greater than 992px)
.col-xl- (xlarge devices - screen width equal to or greater than 1200px)
它们会随着尺寸的变化自动触发
答案 3 :(得分:-1)
尝试用col-lg-4
代替col-xs-12
。这会使您与此班的“ divs”保持堆叠状态。
希望这可以为您提供帮助。