1、定位
*{
margin:0;
padding: 0;
}
.left, .right{
width: 200px;
height: 200px;
background: red;
position: absolute;
top: 0;
}
.left{
left: 0;
}
.right{
right: 0;
}
.middle{
height: 200px;
background:#efbdbd;
margin-left: 200px;
margin-right: 200px;
}
2、浮动
.left, .right{
width: 200px;
height: 200px;
background: red;
}
.left{
float: left;
}
.right{
float: right;
}
.middle{
height: 200px;
background:#efbdbd;
margin-left: 200px;
margin-right: 200px;
}
3、圣杯布局
1、左中右float:left;顺便position:relative后面会用到
2、中间width:100%;
3、这时,中间元素会把两边撑开,那么我们用margin-left把他拉回来;
4、两边元素倒是回来了,中间被盖住了怎么办?不着急,整个外层加个padding;
5、解决了上一个问题,左右元素又偏了!还记得刚开始的定位吗?对!对左右元素定位就好啦!
.middle, .left, .right{
float: left;
height: 200px;
position: relative;
}
.middle{
width: 100%;
background:#efbdbd;
}
.content{
padding:0 200px;
}
.left{
width:200px;
background:red;
margin-left: -100%;
left: -200px;
}
.right{
background:red;
width:200px;
margin-left: -200px;
right: -200px;
}
4、双飞翼布局
1、左中右float:left;
2、中间width:100%;
3、这时,中间元素会把两边撑开,那么我们用margin-left把他拉回来;
4、两边元素倒是回来了,中间被盖住了怎么办?这次我们不在整个外层加个padding了;我们在middle里面加个子标签并margin
5、可以啦!
.middle, .left, .right{
float: left;
height: 200px;
}
.middle{
width: 100%;
background:#efbdbd;
}
.middle_son{
margin:0 200px;
}
.left{
width:200px;
background:red;
margin-left: -100%;
}
.right{
background:red;
width:200px;
margin-left: -200px;
}
5、flex
.content{
display: flex;
}
.left, .right{
width: 200px;
height: 200px;
background: red;
}
.middle{
height: 200px;
background:#efbdbd;
flex: 1;
}
如果想要做两列布局(左边固定,右边自适应),全部可以参考这个,唯一有一种方法自己的方法利用BFC也很简单。
圣杯布局和双飞翼布局是参考了这位同学的,可以说是照搬来的。
https://www.cnblogs.com/imwtr...