在我们以前的伸缩布局中,假设我们需要在一个<div>中进行三列相等大小的布局,我们通常的做法是给外层div 里面的div 设置宽度。即:
<style>
body,html,div{margin: 0px;padding: 0px;width: 100%;}
.box{}
.box div{width: 33.33333333%;height: 50px; float: left;}
</style>
</head>
<body>
<!--通常做法-->
<div class="box">
<div style="background-color: firebrick;"></div>
<div style="background-color: aquamarine;"></div>
<div style="background-color: blueviolet;"></div>
</div>
</body>
这样是能够做到平均三等分,如果我们想让外层DIV 分为四等分,我们是不是要去改其中一个div的宽度。在我们CSS3中,就解决了这一点
以代码为例:
.display-box{display: flex;}
.display-box div{height:50px;margin-top: 10px;}
.flex-1{flex: 1;}
.flex-2{flex: 2;}
.flex-3{flex: 3;}
<div class="display-box">
<div class="flex-1" style="background-color: firebrick;">不计算宽度,直接平分三份,flex:1</div>
<div class="flex-1" style="background-color: aquamarine;">不计算宽度,直接平分三份,flex:1</div>
<div class="flex-1" style="background-color: blueviolet;">不计算宽度,直接平分三份,flex:1</div>
</div>
<div class="display-box">
<div class="flex-1" style="background-color: firebrick;">不计算宽度,直接平分六份,占一份,flex:1</div>
<div class="flex-2" style="background-color: aquamarine;">不计算宽度,直接平分六份,占两份 flex:2</div>
<div class="flex-3" style="background-color: blueviolet;">不计算宽度,直接平分六份,占三份 flex:3</div>
</div>