css-常用布局-圣杯&双飞翼

圣杯布局

float实现

body
<body>
<div class="header">header</div>
<div class="container">
<div class="middle">middle</div>
<div class="left">left</div>
<div class="right">rigth</div>
</div>
<div class="footer">footer</div>
</body>
style
* {
margin: 0;
padding: 0;
}
.header,
.footer{
height: 100px;
background-color: cadetblue;
}
.footer{
clear:both;
}
.container{
padding-left: 200px;
padding-right: 200px;
min-width: 200px;
}
.container div{
position: relative;
float: left;
height: 300px;
}
.middle{
background-color: antiquewhite;
width: 100%;
}
.left{
width: 200px;
margin-left: -100%;
left: -200px;
background-color: brown;
}
.right{
width: 200px;
margin-left: -200px;
left: 200px;
background-color:cornflowerblue;
}

关键在于负margin,relative和padding的混合使用

float的第二种实现

也可以通过把middle标签放在后面,通过将left和right分别左右浮动使middle掉到中间。同样需要清除浮动。

双飞翼布局

body
<body>
<div class="header">header</div>
<div class="container">
<div class="middle">
<div class="middle-in">middle</div>
</div>
<div class="left">left</div>
<div class="right">rigth</div>
</div>
<div class="footer">footer</div>
</body>
style
* {
margin: 0;
padding: 0;
}
.header,
.footer{
height: 100px;
background-color: cadetblue;
}
.footer{
clear:both;
}
.container{
min-width: 200px;
}
.container div{
float: left;
height: 300px;
}
.middle{
background-color: antiquewhite;
width: 100%;
}
.left{
width: 200px;
margin-left: -100%;
background-color: brown;
}
.right{
width: 200px;
margin-left: -200px;
background-color:cornflowerblue;
}
.middle-in{
padding-left: 200px;
padding-right: 200px;
}

区别

圣杯布局的padding加在外部容器(即container)上;
双飞翼布局是通过缩小middle的width(内部套一层div或者怪异模式的方式)腾出空间

posted @   badpear  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示