代码之家  ›  专栏  ›  技术社区  ›  AlphaX

无法将flex box项包装在2列设置中[重复]

  •  0
  • AlphaX  · 技术社区  · 7 年前

    我知道这个问题已经被问了好几次,解决方法是flex-wrap:wrap,但由于某些原因,这在我的代码中不起作用。

    我基本上总是需要两个div相邻的一排,然后包装。

    J中间: enter link description here

        .wrapper {
          display: flex;
          display: -ms-flexbox;
          display: -webkit-flex;
          display: -moz-box;
          flex-wrap: wrap;
        }
    
        .box {
          flex: 50%;
          text-align: center;
          padding-bottom: 10px;
          color: #8988DB;
          flex-wrap: wrap;
          border: 1px solid black;
        }
      <div class="wrapper">
      
        <div class="box"><br>Valerian Root</div>
        <div class="box"><br>Lavender</div>
        <div class="box"><br>Lemon Balm</div>
        <div class="box"><br>Chamomile</div>
        <div class="box"><br>Passion Flower</div>
        <div class="box"><br>Hops</div>
        <div class="box"><br>Rooibos</div>
        <div class="box"><br>Cinnamon</div>
        
      </div>

    阿尔法

    3 回复  |  直到 7 年前
        1
  •  2
  •   Asons Oliver Joseph Ash    7 年前

    注意,在flex容器的CSS规则中,将 display: flex 财产 所有前缀版本。

    要使它在IE11中也能工作,请使用 width: 50% 而不是 flex: 50% ,结合 box-sizing: border-box 边框/填充 包含在设置的宽度中。

    .wrapper {
          display: -ms-flexbox;
          display: -webkit-flex;
          display: -moz-box;
          display: flex;
          flex-wrap: wrap;
        }
    
        .box {
          box-sizing: border-box;
          width: 50%;
          padding: 0 30px 10px;
          text-align: center;
          color: #8988DB;
          border: 1px solid black;
        }
    <div class="wrapper">
      
        <div class="box"><br>Valerian Root</div>
        <div class="box"><br>Lavender</div>
        <div class="box"><br>Lemon Balm</div>
        <div class="box"><br>Chamomile</div>
        <div class="box"><br>Passion Flower</div>
        <div class="box"><br>Hops</div>
        <div class="box"><br>Rooibos</div>
        <div class="box"><br>Cinnamon</div>
        
      </div>
        2
  •  1
  •   Paulie_D    7 年前

    看起来你需要的只是一个正确的CSS重置,特别是 box-sizing width 计算。

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    
    .wrapper {
      display: flex;
      flex-wrap: wrap;
    }
    
    .box {
      flex: 50%;
      text-align: center;
      padding-bottom: 10px;
      color: #8988DB;
      border: 1px solid black;
    }
    <div class="wrapper">
    
      <div class="box"><br>Valerian Root</div>
      <div class="box"><br>Lavender</div>
      <div class="box"><br>Lemon Balm</div>
      <div class="box"><br>Chamomile</div>
      <div class="box"><br>Passion Flower</div>
      <div class="box"><br>Hops</div>
      <div class="box"><br>Rooibos</div>
      <div class="box"><br>Cinnamon</div>
    
    </div>
        3
  •  1
  •   serraosays    7 年前

    踏入 CSS Grid ,它是这个用例的理想选择。你的用例非常简单,你只需要三行CSS就可以完成。

    .wrapper {
      display: grid;
      grid-template-columns: 1fr 1fr; // creates two responsive columns
      grid-gap: 10px; // puts 10px between each node in the grid
    }