页面布局之圣杯布局的实现

圣杯布局解决方案

  1. 浮动解决:
<style>
.left {
float: left;
width: 300px;
}
.right{
float: right;
width: 300px;
}
.center {
background: red;
}
</style>
<div class="left"></div>
<div class="right"></div>
<div class="center"></div>

优点:兼容性好
缺点:脱离文档流,需清除浮动

  1. 绝对定位解决方案

.container {
	position: absolute;
}
.left {
	left: 0;
	width: 300px;
}
.right{
	right: 0;
	width: 300px;
}
.center {
	left: 300px;
	right: 300px;
	background: red;
}
<div class="container">
	<div class="left"></div>
	<div class="right"></div>
	<div class="center"></div>
</div>

优点:快捷
缺点:脱离文档流,可使用性较差

  1. flex布局
.container {
	display: flex;
}
.left {
	width: 300px;
}
.right{
	width: 300px;
}
.center {
	flex:1;
	background: red;
}
<div class="container">
	<div class="left"></div>
	<div class="right"></div>
	<div class="center"></div>
</div>

优点:解决了前两种所存在的问题,在移动端使用较多,在高度不确定的情况可正常使用
缺点:兼容问题

  1. table布局
.container {
	display: table;
	width: 100%;
	height: 100px;
}
.container>div {
	display: table-cell;
}
.left {
	display: table-cell;
	width: 300px;
}
.right{
	display: table-cell;
	width: 300px;
}
.center {
	display: table-cell;
	background: red;
}
<div class="container">
	<div class="left"></div>
	<div class="right"></div>
	<div class="center"></div>
</div>

优点: 兼容性较好,在高度不确定的情况可正常使用
缺点:较为复杂,其中一块高度变化,另外两块也会随着其高度改变
5. grid布局

.container {
	display: grid;
	width: 100%;
	grid-template-rows: 100px;
    grid-template-columns: 300px auto 300px;
}
.center {
	background: red;
}
<div class="container">
	<div class="left"></div>
	<div class="right"></div>
	<div class="center"></div>
</div>

优点:代码量很少,从CSS层面提出了可替代使用栅格化布局的方案
缺点:目前兼容性较差

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值