常用的宽度自适应的方法通常是利用了block水平的元素宽度能随父容器调节的流动特性。另外一种思路是利用CSS中的calc()方法来动态设定宽度。还有一种思路是,利用CSS中的新型布局flex layout与grid layout。
双inline-block布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
双inline-block布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
双inline-block布局--左侧自适应,右侧固定宽度:200px
我是左边的盒子,我能自适应
我是右边的盒子,拥有200px的宽度
双float布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
双float布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
双float布局--左侧自适应,右侧固定宽度:200px
我是左边的盒子,我能自适应
我是右边的盒子,拥有200px的宽度
float + margin-left布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
float + margin-left布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
float + margin-left布局--左侧自适应,右侧固定宽度:200px
我是右边的盒子,拥有200px的宽度
我是左边的盒子,我能自适应
absolute + margin-left布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
absolute + margin-left布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
absolute + margin-left布局--左侧自适应,右侧固定宽度:200px
我是右边的盒子,拥有200px的宽度
我是左边的盒子,我能自适应
上面的方法都需要通过左侧盒子的宽度,计算某个值,下面三种方法都是不需要计算的。只需要设置两个盒子之间的间隔。
flex布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
flex布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
flex布局--左侧自适应,右侧固定宽度:200px
我是左边的盒子,我能自适应
我是右边的盒子,拥有200px的宽度
float + BFC布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
float + BFC布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
float + BFC布局--左侧自适应,右侧固定宽度:200px
我是右边的盒子,拥有200px的宽度
我是左边的盒子,我能自适应
grid布局--左侧30%,右侧70%
我是左边的盒子,拥有30%的宽度
我是右边的盒子,拥有70%的宽度
grid布局--左侧固定宽度:200px,右侧自适应
我是左边的盒子,拥有200px的宽度
我是右边的盒子,我能自适应
grid布局--左侧自适应,右侧固定宽度:200px
我是左边的盒子,我能自适应
我是右边的盒子,拥有200px的宽度