flexbox等于一定数量的项目

时间:2017-03-15 06:31:53

标签: html css css3 flexbox

我尝试使用flexbox创建日历布局,它总是连续有7个项目。我没有在父母那个指定固定的情况下坚持做到这一点。

https://jsfiddle.net/t4ay065h/

#calendar {
  display: flex;
  flex-flow: row wrap;
}

#calendar div {
  flex: 1;
  text-align: center;
}

4 个答案:

答案 0 :(得分:3)

您可以通过向子元素添加宽度来解决此问题。

#calendar {
  display: flex;
  flex-flow: row wrap;
}

#calendar div {
  display: inline-block;
  margin:10px 0 0 10px;
  flex-grow: 1;
  text-align: center;
  width: calc(100% * (1/4) - 10px - 1px)
}

jsfiddle。 有关更多参考,请参阅此stackoverflow帖子how-to-force-a-flex-box-to-display-4-items-per-row

答案 1 :(得分:0)

我认为你需要添加' flex-basis:14.28%;'你的#calendar div就像这样

#calendar div {
  flex: 1;
  text-align: center;
  flex-basis: 14.28%;
}

答案 2 :(得分:0)

试用此代码



#calendar {
  display: flex;
  flex-flow: row wrap;
}

#calendar div {
    text-align: center;
    margin: 10px 0 0 10px;
    height: 20px;
    flex-basis: calc(100%/8);
    background-color: red;
}

<div id="calendar">
  <div>
    1
  </div>
  <div>
    2
  </div>
  <div>
    3
  </div>
  <div>
    4
  </div>
  <div>
    5
  </div>
  <div>
    6
  </div>
  <div>
    7
  </div>
  <div>
    8
  </div>
  <div>
    9
  </div>
  <div>
    10
  </div>
  <div>
    11
  </div>
  <div>
    12
  </div>
  <div>
    13
  </div>
  <div>
    14
  </div>
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

在您添加flex item的{​​{1}}属性时,默认情况下根据1水平width水平each items,这就是为什么{ {1}}不起作用,而是添加如下,

  

flex属性指定项目的长度,相对于   其余的灵活物品在同一个容器内。

width of container
flex:wrap