css布局之圣杯布局和双飞翼布局

本文介绍两种经典的三栏布局方法——圣杯布局和双飞翼布局,这两种方法均可实现左右固定宽度、中间自适应宽度的效果。文章通过具体实例详细讲解了这两种布局的HTML结构与CSS样式设置,并解释了负边距在其中的关键作用。

圣杯布局和双飞翼布局都是实现三栏布局的方法,左右定宽,中间自适应,是很常见的布局,其原理差不多,都有负边距的应用

效果图:

圣杯布局

html布局:

        <div class="header"></div>
     	<div class="content">
		<div class="middle"></div>
		<div class="left"></div>
		<div class="right"></div>
	</div>
	<div class="footer"></div>
复制代码

css样式:

               .header {
			width: 100%;
			height: 30px;
			background: red;
		}

		.content {
			overflow: hidden;
			padding: 0 100px;
		}

		.footer {
			width: 100%;
			height: 30px;
			background: red;
		}

		.middle {
			position:relative;			
			width: 100%;
			float: left;
			height: 80px;
			background: green;
		}

		.left {
			position:relative;
			width: 100px;
			float: left;
			left:-100px;
			height: 80px;
			margin-left: -100%;
			background: yellow;
		}

		.right {
			position:relative;			
			width: 100px;
			float: left;
			right:-100px;
			height: 80px;
			margin-left: -100px;
			background: pink
		}
复制代码

这里有几点需要留意:
1: 先写middle,然后是left和right,因为需要先渲染middle
2: left、right需设置position:relative以及相应的left、right值
3:理解负边距的作用,left的margin-left:-100%使它上移一行,同时right向左移占据left原先位置,同理,right的margin-left:-100px使它上移并靠右

负边距其实是这两种布局的重中之重,这里不做深入,有兴趣可以看这篇文章:
www.cnblogs.com/2050/archiv…

双飞翼布局

html布局

        <div class="header"></div>
	<div class="content">
		<div class="middle">
			<div class="inner-middle"></div>
		</div>
		<div class="left"></div>
		<div class="right"></div>
	</div>
	<div class="footer"></div>
复制代码

css样式

               .header {
			width: 100%;
			height: 30px;
			background: red;
		}

		.content {
			overflow: hidden;
		}

		.footer {
			width: 100%;
			height: 30px;
			background: red;
		}

		.middle {			
			width: 100%;
			float: left;
		}
               .inner-middle{
			width:100%;
			height: 80px;
			
			background: green;			
		}
		.left {
			width: 100px;
			float: left;
			height: 80px;
			margin-left: -100%;
			background: yellow;
		}

		.right {			
			width: 100px;
			float: left;
			height: 80px;
			margin-left: -100px;
			background: pink
		}
复制代码

额...跟圣杯布局没多大区别,就是middle的实现不一样,圣杯布局是middle+padding,双飞翼采用子元素+margin,最主要的还是负边距的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值