描述
2个子元素都是flex:1,按道理是一人一半嘛,问题来了,我给其中一个加一个: padding,然后就不是一人一半了,它变宽了,为啥,按道理应该是在flex:1里面自己padding,怎么又去挤占别的元素的空间了
期待的结果
1,为何如此?
2,不使用width:50%,仅使用flex能否解决不等宽的问题?
在线示例
https://codepen.io/l-raymond/...
代码示例
<div class='box'>
<div class='c1'>
c1c1c1c1c1c1
</div>
<div class='c2'>
c2c2c2c2c2c2
</div>
</div>
和
.box {
display: flex;
}
.c1 {
flex: 1;
background: red;
padding-left: 700px;
flex-basis: 50%;
}
.c2 {
flex: 1;
background: green;
flex-basis: 50%;
}
* {
box-sizing: border-box;
}
你大概对flex有误解,
flex: 1
相当于flex-grow: 1
,看看MDN对它的解释:重点——剩余空间,这是指定怎么分配剩余空间的,不是先分配好空间