前端新手上路之css篇(三栏布局)

三栏布局

三列布局要求:

     1.两边固定,中间自适应
     2. 中间列要完整显示		
     3.中间列要优先加载

三列布局

1.两边浮动,中间用margin隔开
浮动会脱离文档流,不能浮到前面的元素上面,所以只能把中间列放在最后

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			
			.left,
			.center,
			.right {
				height: 500px;
			}
			.left{
				width: 200px;
				background-color: pink;
				float: left;
			}
			.center{
				margin: 0 200px;
				background-color: deeppink;
			}
			.right{
				width: 200px;
				background-color: pink;
				float: right;
			}
			
		</style>
	</head>

	<body>
		<!--三列布局要求
			1.两边固定,中间自适应
			2.中间列要完整显示
			3.中间列要优先加载
		-->
		<div class="left">left</div>
		<div class="right">right</div>
		<div class="center">center</div>
	</body>

</html>

2 绝对定位+margin
原理与浮动类似
因为要优先加载中间列,这两种方法不常用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			
			.left,
			.center,
			.right {
				height: 500px;
			}
			.left{
				width: 200px;
				background-color: pink;
				position: absolute;
				left: 0;
			}
			.center{
				margin: 0 200px;
				background-color: deeppink;
			}
			.right{
				width: 200px;
				background-color: pink;
				position: absolute;
				right: 0;
			}
			
		</style>
	</head>
	<body>
		<!--三列布局要求
			1.两边固定,中间自适应
			2.中间列要完整显示
			3.中间列要优先加载
		-->
		<div class="left">left</div>
		<div class="right">right</div>
		<div class="center">center</div>
	</body>

</html>

3 经典的圣杯布局和双飞翼布局

圣杯布局用浮动搭建完整的布局框架
用margin设负值调整两边列位置(使三列布局到一行上)
使用相对定位调整两边列的位置(使两列位置调整到两头)

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			
			.left,
			.center,
			.right {
				height: 500px;
			}
			body{
				min-width: 600px;
			}
			.content{
				padding: 0 200px;
			}
			.left{
				position: relative;
				left: -200px;
				float: left;
				margin-left: -100%;
				width: 200px;
				background-color: pink;
			}
			.center{
				float: left;
				width: 100%;
				background-color: deeppink;
			}
			.right{
				position: relative;
				right: -200px;
				margin-left: -200px;
				float: left;
				width: 200px;
				background-color: pink;
			}
			/*清除浮动*/
			.clearFix:after{ 
				content: "";
				display: block;
				clear: both;
			}
		</style>
	</head>

	<body>
		<!--三列布局要求
			1.两边固定,中间自适应
			2.中间列要完整显示
			3.中间列要优先加载
		-->
		<div class="content clearFix">
			<div class="center">center</div>
			<div class="left">left</div>
			<div class="right">right</div>
					
		</div>
		
	</body>

</html>

双飞翼布局与圣杯布局类似,在中间自适应层多了一层嵌套

<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			* {
				margin: 0;
				padding: 0;
			}
			body{
				min-width: 600px;
			}
			.left,
			.center,
			.right {
				float: left;
				height: 500px;
			}
			
			]
			.content{
				height: 500px;
			}
			.left{
				margin-left: -100%;
				width: 200px;
				background-color: pink;
			}
			
			.right{
				margin-left: -200px;
				width: 200px;
				background-color: pink;
			}

			.center{
				width: 100%;
				background-color: deeppink;
			}
			.center .center-inner{
				padding: 0 200px;
			}
		</style>
	</head>

	<body>
		<!--三列布局要求
			1.两边固定,中间自适应
			2.中间列要完整显示
			3.中间列要优先加载
		-->
		<div class="content">
			
			<div class="center">
				<div class="center-inner">center</div>
			</div>
			<div class="left">left</div>
			<div class="right">right</div>
					
		</div>
		
	</body>

</html>

关于三栏布局还有很多实现方法,这里不一一列举了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值