无法将弹性框项目包装为2列设置

时间:2018-10-29 17:08:10

标签: css css3 flexbox

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

有人可以简短地帮助我为什么我的div不包裹吗?

我基本上总是需要连续2个div彼此相邻,然后包装。

JSFIDDLE: 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>

非常感谢!

Alpha

3 个答案:

答案 0 :(得分:1)

看起来您需要做的就是对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>

答案 1 :(得分:1)

请注意,在flex容器的CSS规则中,将常规display: flex属性放在所有前缀版本之后。

要使其在IE11中也能正常工作,请使用width: 50%代替flex: 50%,并结合box-sizing: border-box,其中将 borders / padding 包含在设置的宽度中

.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)

进入CSS Grid,这是此用例的理想选择。您的用例非常简单,只需三行CSS即可完成。

as int[]