1

如何使用 Bootstrap 4 flex Grid 像这样浮动我的布局?我 在此处输入图像描述

使用弹性订单功能尝试过,但请查看我的结果和问题

<div class="row align-items-start">

        <div class="col-sm-8 float-left" style="background: orange;order:1">
                <div class="white-container pt-5 pb-5">
                    # LEFT 1
                </div>
            </div>
            <div class="col-sm-4 float-right" style="background: pink;order:2">
                <div class="white-container pt-3 pb-3">
                    # RIGHT 1
                </div>
            </div>
            <div class="col-sm-4 float-right" style="background: grey;order:4">
                <div class="white-container pt-3 pb-3 ">
                    # RIGHT 2
                </div>
            </div>
            <div class="col-sm-8 float-left" style="background: yellow;order:3">
                <div class="white-container pt-5 pb-5">
                    # LEFT 2
                </div>
            </div>
            <div class="col-sm-8 float-left" style="background: yellow;order:5">
                <div class="white-container pt-5 pb-5">
                    LEFT 3
                </div>
            </div>
            <div class="col-sm-4 float-right" style="background: grey;order:6">
                <div class="white-container pt-3 pb-3">
                    RIGHT 3
                </div>
            </div>
        </div>

在此处输入图像描述

我的解决方案的问题是右列之间的空格。在我放弃和使用 javascript 之前,我希望能得到任何帮助:)

4

2 回答 2

1

jQuery解决方案:

var isMobileSorted = false;

$(window).resize(function() {
    if ($(window).width() < 768) {
        if(!isMobileSorted) {
            // sort mobile
            $("#widget").insertAfter($("#pictures"));
            $("#video").insertAfter($("#widget"));
            $("#reviews").insertAfter($("#contact"));
            isMobileSorted = true;
        }
    } else {
        if(isMobileSorted) {
            // resort desktop
            $("aside").prepend($("#widget"))
            $("#video").insertAfter($("#widget"));
            $("#reviews").insertAfter($("#video"));
            isMobileSorted = false;
        }
    }
}).resize();
于 2017-09-27T09:07:17.747 回答
0

使用两个并排的列来实现这种布局会容易得多。

有关工作示例,请参阅https://codepen.io/caleyshemc/pen/mBWWRL 。

<div class="container">
  <div class="row">
    <div class="col-sm-8">
      <div class="p-5" style="background: orange;">
        # LEFT 1
      </div>
      <div class="p-5" style="background: yellow;">
        # LEFT 2
      </div>
      <div class="p-5" style="background: lightgreen;">
        # LEFT 3
      </div>
    </div>

    <div class="col-sm-4">
      <div class="p-3" style="background: pink;">
        # RIGHT 1
      </div>
      <div class="p-3" style="background: grey;">
        # RIGHT 2
      </div>
      <div class="p-3" style="background: lightblue;">
        # RIGHT 3
      </div>
    </div>
  </div>
</div>

如果您绝对必须保持项目的顺序,则 Flexbox 无法实现这种布局。查看 JavaScript 网格布局库,例如Masonry

于 2017-09-26T23:56:29.253 回答