如何让多个div以相等的宽度水平排列?

sjs*_*sjs 2 html css

我想要两个、三个或更多的 div 水平排列,那么每个宽度都会填充所有可用空间。例如,对于两个 div,它们将各自占据一半的空间,对于三个 div,它们将占据 1/3 的空间,依此类推。

我尝试使用显示内联块,并且可以让 div 并排排列,但是如何让它们填充父容器的可用宽度?

编辑:最好没有显示弯曲方法(我不确定它是否与 IE11 完全兼容)

.container{
  border: solid 1px green;
  height: 50px;
  box-sizing: border-box;


}
.button{
  display:inline-block;
  border: solid 1px black;
  height: 20px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="button ">
div1
</div>
<div class="button ">
div2
</div>
<div class="button ">
div3
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

zwo*_*wol 5

这对于Flexbox布局来说很简单:

.container{
  border: solid 1px green;
  height: 50px;
  box-sizing: border-box;
  display: flex;
}
.button{
  display:inline-block;
  border: solid 1px black;
  height: 20px;
  flex: 1;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
<div class="button ">
div1
</div>
<div class="button ">
div2
</div>
<div class="button ">
div3
</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我所做的只是分别将display:flexflex:1属性添加到containerbutton

Flexbox 如今得到了广泛的支持,但如果您关心 IE(直至并包括版本 11)或更旧的 Android,您可能希望避免使用它。不幸的是,如果没有Flexbox,你想做的事情就会困难得多。我会让其他人写一个非弹性盒的答案。