使用bootstrap 4对3列进行排序和堆叠

时间:2017-03-09 21:16:05

标签: css twitter-bootstrap flexbox bootstrap-4 twitter-bootstrap-4

我在bootstrap列中有这个结构: enter image description here

我希望您更改为较低的分辨率,按以下顺序排列:enter image description here

我在这里找到了如何使用flexbox: Flexbox: reorder and stack columns

但我不能将我的项目的整个结构更改为flexbox,所以我想知道是否使用bootstrap 4,可以这样做。

非常感谢。

我的考试不好。

@import url( 'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css' );

div {
  text-align: center;
  height: 60px;
}

#left {
  background: yellow;
}

#middle {
  background: blue;
}

#right {
  background: coral;
}
<div class="container">
  <div class="row">
    <div class="col-sm-3 col-md-3">
      <div id="left">COLUMN 1</div>
    </div>
    <div class="col-sm-6 col-md-6">
      <div id="middle">COLUMN 2</div>
    </div>
    <div class="col-sm-3 col-md-3">
      <div id="right">COLUMN 3</div>
    </div>
  </div>
</div>

3 个答案:

答案 0 :(得分:5)

您可以使用Bootstrap 4(alpha 6)实用程序类来避免额外的CSS 。 1-2-3在手机上变成3-2-1。

<div class="container">
    <div class="row">
        <div class="col-sm-8 col-md-6 push-md-3">
          <div id="middle">COLUMN 2</div>
        </div>
        <div class="col-sm-4 col-md-6">
          <div class="row">
            <div class="col-md-6 pull-md-12 flex-last flex-md-unordered">
             <div id="left">COLUMN 1</div>
           </div>
            <div class="col-md-6">
             <div id="right">COLUMN 3</div>
           </div>
          </div>
        </div>
    </div>
</div>

http://www.codeply.com/go/GIcPuzURbs

答案 1 :(得分:2)

我认为“分辨率”是指屏幕尺寸较小?

这是一个可能的解决方案,它使用一些引导推/拉网格实用程序对中等大小视口中的列重新排序,然后按照您在图表中显示的方式重新排列小尺寸视口中的布局。在小屏幕视图中,在媒体查询中,我使用css属性order垂直重新排序1和3列希望它能让您走上正确的轨道

<div class="container">
    <div class="row">
        <div class="col-sm-8 col-md-6 push-md-3">
          <div id="middle">COLUMN 2</div>
        </div>
        <div class="col-sm-4 col-md-6">
          <div class='row'>
            <div id='leftcont' class="col-md-6 pull-md-12">
             <div id="left">COLUMN 1</div>
           </div>
            <div id='rightcont' class="col-md-6">
             <div id="right">COLUMN 3</div>
           </div>
          </div>
        </div>
    </div>
</div>

CSS:

div {
  text-align:center;
  height:60px;
}
#left{background:yellow;}
#middle {background:blue;}
#right {background:coral;}

@media (max-width: 768px) {
  #leftcont { order: 2; }
  #rightcont {
    order: 1;
    margin-bottom: 1em; }
}

fiddle

可能必须针对网格断点调整div的高度,但由于彩色div仅用于测试,因此我与您的示例不匹配

答案 2 :(得分:0)

您是否尝试过拉2列以降低分辨率?