【问题标题】:Flex-box layout 3 stacked column on left, 1 on rightFlex-box 布局左侧 3 个堆叠列,右侧 1 个堆叠列
【发布时间】:2020-03-29 18:51:53
【问题描述】:

我想使用带有 bootstrap 4 的 flexbox 来创建一个布局,左侧有 3 列堆叠,右侧有 1 列,垂直高度与左侧 3 列相同。之后,一些全跨度的行。

理想情况下,这应该可以使用本机引导程序 4 类来完成(与此 question 不同)

这样的布局:

我在这里做了一个粗略的开始:http://jsfiddle.net/bigalnz/9xLgvnc5/14/

<div class="container">
    <div class="flex-column">
        <div>1</div>
        <div>2</div>
        <div>3</div>
     </div>
</div>

我有一个 jsfiddle start here

但除此之外 - 什么元素应该设置宽度? 大盒子应该有自己的容器吗? 行全跨行,它们应该在自己的容器中吗? 为什么 flex 比像 fiddle 这样的嵌套行/列更好(因为大的右框不是全高,所以无论如何都不太正确)?

【问题讨论】:

    标签: html css bootstrap-4 flexbox


    【解决方案1】:
    <div class="d-flex flex-column">
        <div class="p-2">Flex item 1</div>
        <div class="p-2">Flex item 2</div>
        <div class="p-2">Flex item 3</div>
    </div>
        <div class="d-flex flex-column-reverse">
        <div class="p-2">Flex item 1</div>
        <div class="p-2">Flex item 2</div>
        <div class="p-2">Flex item 3</div>
    </div>
    

    Look at the docs here.

    【讨论】:

    • 链接已损坏
    【解决方案2】:

    #flex_box1 div
    {
      width:100%;
      height:150px;
      border: 2px solid #555;
      margin-bottom:15px;  
    }
    #flex_box1 div:last-child{ margin:0; }
    #flex_box2 div
    {
      width:100%;
      height:100%;
      border: 2px solid #555; 
    }
    #flex_box3 div
    {
      width:100%;
      height:50px;
      border: 2px solid #555;
      margin-top:15px;  
    }
    <!doctype html>
    <html lang="en">
      <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    
        <title>Hello, world!</title>
      </head>
      <body>
        <div class="container">
          <div class="row">
            <div class="col-3 d-flex flex-column" id="flex_box1">
              <div></div>
              <div></div>
              <div></div>
            </div>
            <div class="col-9 " id="flex_box2">
              <div></div>
            </div>
            <div class="col-12" id="flex_box3"><div></div></div>
            <div class="col-12" id="flex_box3"> <div></div></div>
          </div>
        </div>
    
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
      </body>
    </html>

    【讨论】:

    • 试试这个,我用的是引导网格和 flexbox 响应式
    • 在 codepen 上查看此链接:codepen.io/NethraDayalan/pen/NWPqRdG?editors=0100
    • 所以您必须编写自己的 css - 仅使用原生 BS4 就不可能?
    • 我只使用 css 来表示宽度和高度
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    相关资源
    最近更新 更多