双飞翼布局和圣杯布局
一、两种布局的目的:
使得左右两边的宽度不随着浏览器窗口的变化而变化,是固定的,只有中间的部分才可以随着窗口变化而变化。
二、两种布局的区别:
圣杯布局是通过父元素padding来设置左右,不遮挡中间内容
双飞翼布局时通过设置margin来限制内部区域从而是中间内容不受影响
圣杯布局代码:
<body>
<!--圣杯布局重点结构就是中间的部分 顺序是center排在最前面 方面后面调整left right位置
因为left right都排在center后面 这样很容易调整上去 如果left right排在center前面 很难调整位置
-->
<div id="header">header</div>
<div id="container" class="clearfix">
<div id="center" class="column">center</div>
<div id="left" class="column">left</div>
<div id="right" class="column">right</div>
</div>
<div id="footer">footer</div>
</body>
<style>
#container{
padding-left: 200px;
padding-right: 190px;
margin: auto;
}
#center{
width: 100%;
background-color: aqua;
}
.column{
float: left;
}
#left{
width: 200px;
background-color: bisque;
margin-left: -100%;
position: relative;
left: -200px;
}
#right{
width: 190px;
background-color: coral;
margin-right: -190px;
}
#header,#footer{
width: 100%;
margin: auto;
background-color: darkgray;
text-align: center;
}
.clearfix::after{
display: table;
content: "";
clear: both;
}
</style>
双飞翼代码:
<body>
<div id="header">header</div>
<div id="center" class="column">
<div id="center-warp">
center
</div>
</div>
<div id="left" class="column">left</div>
<div id="right" class="column">right</div>
<div id="footer">footer</div>
</body>
<style>
#container{
padding-left: 200px;
padding-right: 190px;
margin: auto;
}
#center{
width: 100%;
height: 200px;
background-color: aqua;
}
.column{
float: left;
text-align: center;
}
#center-warp{
/*用margin隐性的扩展自己的边界*/
margin :0 190px 0 200px;
}
#left{
width: 200px;
height: 200px;
background-color: bisque;
margin-left: -100%;
}
#right{
width: 190px;
height: 200px;
background-color: coral;
margin-left: -190px;
}
#header,#footer{
width: 100%;
margin: auto;
background-color: darkgray;
text-align: center;
}
</style>