Bootstrap中的断点效果

时间:2019-02-26 12:34:33

标签: html css bootstrap-4

我是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断点没有被触发。

4 个答案:

答案 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%;
}

您看到: .rowdisplay: flex.row的每个直接子元素都是带有default value for flex-basis of auto的弹性项目。 auto弹性项目仅占用所需空间(如果未提供宽度) .col-lg-4的宽度始终为100%,但在大屏幕(> = 992px)上,它的flex-basis33.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)

它们会随着尺寸的变化自动触发

Boostrap Grid System

答案 3 :(得分:-1)

尝试用col-lg-4代替col-xs-12。这会使您与此班的“ divs”保持堆叠状态。

希望这可以为您提供帮助。