布局
三栏布局
- 浮动
<div class="content">
//注意顺序,contenter在后面,因为前面要脱离文档流
<div class="left">
left
</div>
<div class="right">
right
</div>
<div class="contenter">
content
<div>
</div>
* {
margin: 0;
padding: 0;
}
.left {
float: left;
width: 100px;
height: 200px;
background-color: pink;
}
.contenter {
margin-left: 100px;
height: 200px;
}
.right {
float: right;
width: 100px;
height: 200px;
background-color: aqua;
}
2.定位布局。
<div class="content">
<div class="left">
left
</div>
<div class="contenter">
content
</div>
<div class="right">
right
</div>
<div>
.content {
position: relative;
}
.left {
width: 100px;
height: 200px;
background-color: pink;
position: absolute;
left: 0;
}
.contenter {
margin-left: 100px;
height: 200px;
position: absolute;
}
.right {
width: 100px;
height: 200px;
position: absolute;
background-color: aqua;
right: 0%;
}
3.flex布局
简单,左右固定,中间flex设置为1,就是flex-grow平分剩下的所有空间。
4.双飞翼布局。
//html部分
<div id="content">
<div id="center" class="column">center</div>
<div id="left" class="column">left</div>
<div id="right" class="column">right</div>
</div>
<style>
*{
margin: 0;
padding: 0;
}
#header{
text-align: center;
width: 100%;
background-color:darkgray;
}
#footer{
text-align: center;
position: fixed;
bottom: 0%;
width: 100%;
background-color: darkgray;
}
#content{
//设置最小宽度,否则会出现问题
min-width: 550px;
//利用padding给左右留出位置。
padding-left: 200px;
padding-right: 150px;
background-color: aquamarine;
}
#content .column{
float: left;
}
#center{
height: 500px;
width: 100%;
background-color: blue;
}
#left{
margin-left: -100%;
width: 200px;
background-color: bisque;
height: 500px;
//通过position移动到contenter留出的位置
position: relative;
right: 200px;
}
#right{
width: 150px;
background-color: blueviolet;
margin-right: -100%;
height: 500px;
}
</style>
5.圣杯布局
<style>
*{
margin: 0;
padding: 0;
}
#header{
text-align: center;
width: 100%;
background-color:darkgray;
}
#footer{
text-align: center;
position: fixed;
bottom: 0%;
width: 100%;
background-color: darkgray;
}
#content{
min-width: 550px;
background-color: aquamarine;
}
#content .column{
float: left;
}
#center{
height: 500px;
width: 100%;
background-color: blue;
}
#left{
margin-left: -100%;
width: 200px;
background-color: bisque;
height: 500px;
}
#right{
width: 150px;
background-color: blueviolet;
margin-left: -150px;
height: 500px;
}
//通过margin移到被左边覆盖的页面
#midCenter{
margin: 0 200px;
}
</style>
圣杯布局与双飞翼布局总结
- 圣杯布局、双飞翼布局都是通过负margin值来进行布局。
- 圣杯布局通过padding来给左右留出空间,并通过position来进行移动到相应的位置。
- 双飞翼布局contenter内部里面还有一个div,这个div通过margin值来移开左边的覆盖部分。