水平对齐几个div(带有变量宽度),每个div之间有间距

时间:2015-09-08 12:52:12

标签: html css

我在这个论坛上搜索了很多,但我的问题太具体了。 我想实现这一点,我尝试了几个月,但我无法得到工作......如果有人可以帮助我,请提前感谢:) :)

我想水平对齐2个,3个,4个,5个或更多个div,宽度可变,并且每个div之间有静态空格。而这一切都不能超过他的父母。所以我同意4 div不能做宽度的25%,但我不知道怎么做..

1 个答案:

答案 0 :(得分:1)

这对flex-box来说是一个很好的用例。我对这两种情况使用了相同的代码。 CSS没有改变,但HTML确实:



.flex-container {
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  -webkit-align-content: stretch;
  -ms-flex-line-pack: stretch;
  align-content: stretch;
  -webkit-align-items: flex-start;
  -ms-flex-align: start;
  align-items: flex-start;
  background: #999;
  margin: 15px;
  padding-right: 5px;
}

.flex-item {
  -webkit-order: 0;
  -ms-flex-order: 0;
  order: 0;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-self: auto;
  -ms-flex-item-align: auto;
  align-self: auto;
  background: #99f;
  margin: 5px 0 5px 5px;
}

<div class="flex-container">
  <div class="flex-item">Item</div>
  <div class="flex-item">Item</div>
  <div class="flex-item">Item</div>
</div>

<div class="flex-container">
  <div class="flex-item">Item</div>
  <div class="flex-item">Item</div>
  <div class="flex-item">Item</div>
  <div class="flex-item">Item</div>
</div>
&#13;
&#13;
&#13;

需要根据子元素的数量更改CSS。我给出了三个和四个<div> s的例子。