html:
css:
方法二:flex布局
html:
css:
一、float实现
html结构:
[html] view plain copy
<div class="left"></div>
<div class="right"></div>
<div class="center"></div>
css:
[css] view plain copy
.left,.right{
width: 200px
height: 300px
background-color: red
}
.left{
float: left
}
.right{
float: right
}
.center{
margin: 0 210px
height: 300px
background-color: blue
}
这种实现受外界影响小,但是对html结构有要求(center必须放在最后,left与right则无所谓),当界面缩小到一定程度时,right会被挤到下一行
二、position实现
html结构:
[html] view plain copy
<div class="left"></div>
<div class="right"></div>
<div class="center"></div>
css:
[css] view plain copy
.left,.right{
position: absolute
width: 200px
height: 300px
background-color: yellow
}
.left{
left: 0
}
.right{
right: 0
}
.center{
margin: 0 210px
height: 300px
background-color: blue
}
该法布局的好处,三个div顺序可以任意改变。不足是 因为绝对定位,所以如果页面上还有其他内容,top的值需要小心处理,最好能够对css样式进行一个初始化,如果不对样式进行初始化,则两边和中间的值会对不齐。 另外,随着浏览器窗口缩小,小于200px的时候,会发生重叠。
实现方式:左右元素浮动,中间元素左右marign值撑开两边距离。
例:
此时看似没有问题,可是如果中间内容过多,超出左右两边高度,我们将看到 文字环绕 问题,如下如所示。
解决办法:
补充flex左右布局,左边固定,右边自适应,并且两列等高自适应