一、两列自适应布局
<body>
<!-- 两列自适应布局:解决不同设备提供不同版本的页面问题 -->
<!-- 左侧宽度固定、右侧宽度自适应-->
<!-- 1、左右两个盒子,左侧盒子宽度固定,右侧盒子宽度100% -->
<!-- 2、左侧盒子设置绝对定位position:absolute;或者让其浮动 -->
<!-- 3、右侧盒子添加子盒子,子盒子设置padding-left:值为左侧盒子的宽度 -->
<div>
<div class="left"></div>
<div class="right">
<div class="child">
ceshiceshi
</div>
</div>
</div>
</body>
<style>
.left{
width: 200px;
height: 100px;
background-color: aqua;
position: absolute;
}
.right{
width: '100%';
height: 100px;
background-color: blanchedalmond;
}
.child{
height: 50px;
padding-left: 200px;
background-color: aquamarine;
}
</style>
二、圣杯布局
<style>
* {
margin: 0;
padding: 0;
border: 0;
box-sizing: border-box;
}
.box {
position: relative;
}
.right,
.left {
width: 200px;
height: 100px;
position: absolute;
}
.left {
background-color: aqua;
left: 0px;
}
.middle {
width: 100%;
height: 100px;
background-color: blueviolet;
padding: 0 200px;
}
.right {
background-color: blanchedalmond;
right: 0px;
top: 0;
}
</style>
<body>
<!-- 圣杯布局 -->
<!-- 左右两侧宽度固定,中间部分自适应的三列布局-->
<!-- 1、position定位,父级盒relative,左右盒子absolute -->
<!-- 2、两侧宽度固定,中间宽度设置100% -->
<!-- 3、左侧盒子left:0,右侧盒子right:0-->
<!-- 4、中间盒子用padding把内容显示出来 -->
<!-- 还有一种方法用flex弹性盒子中的flex-grow中间盒子充满实现 -->
<div class="box">
<div class="left"></div>
<div class="middle">
ceshicehsi
</div>
<div class="right"></div>
</div>
</body>
三、双飞翼布局
和圣杯布局差距不大,都是左右两列固定,中间自适应;双飞翼中间的盒子会多着一个子盒子,用margin来实现内容的显示,圣杯没有子盒子用的padding挤压内容
四、等高布局
分真等高和假等高
真等高用position、float做就可以;假等高利用内外间距抵消实现视觉上的等高,父盒子设置overflow,子盒子用padding-bottom撑开背景颜色,margin负值抵消
此处用真等高position实现
* {
margin: 0;
padding: 0;
border: 0;
box-sizing: border-box;
}
.box {
position: relative;
height: 400px;
}
.right,
.middle,
.left {
position: absolute;
top: 0;
bottom: 0;
}
.left {
left: 0;
width: 300px;
background-color: aqua;
}
.middle {
left: 300px;
right: 300px;
background-color: blueviolet;
word-break: break-all; //实现文字自动换行
}
.right {
width: 300px;
right: 0;
background-color: blanchedalmond;
}
<div class="box">
<div class="left"></div>
<div class="middle">
ceshicehsicersagfsdadsaaadddsssssssddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
</div>
<div class="right"></div>
</div>