css布局之上下两行布局(上面固定高度,下面自适应)

html-css09

css布局之上下两行布局(上面固定高度,下面自适应),第1张

方法一: 利用position绝对定位+BFC

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左右布局,左边固定,右边自适应,并且两列等高自适应