两栏、三栏布局

776 阅读1分钟

两栏布局5-1

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.left{
		background:#CCC;
		width:200px;
		float:left;
	}
	.right{
		background:pink;
		margin-left:200px;
		width:auto
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>12</div>
		<div class='right'>34</div>
	</div>
</body>
</html>

两栏布局5-2

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.left{
		background:#CCC;
		width:200px;
		float:left;
	}
	.right{
		background:pink;
		overflow:hidden
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>12</div>
		<div class='right'>34</div>
	</div>
</body>
</html>

两栏布局5-3

flex

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		display:flex;
	}
	.left{
		background:#CCC;
		width:200px;
	}
	.right{
		background:pink;
		flex:1
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>12</div>
		<div class='right'>34</div>
	</div>
</body>
</html>

两栏布局5-4

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		position:relative;
	}
	.left{
		background:#CCC;
		position:absolute;
		width:200px;
	}
	.right{
		background:gold;
		margin-left:200px;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>12</div>
		<div class='right'>34</div>
	</div>
</body>
</html>

两栏布局5-5

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		position:relative;
	}
	.left{
		background:#CCC;
		width:200px;
	}
	.right{
		position:absolute;
		background:gold;
		top:0;
		right:0;
		bottom:0;
		left:200px;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>12</div>
		<div class='right'>34</div>
	</div>
</body>
</html>

三栏布局5-1

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		position:relative;
	}
	.left{
		position:absolute;
		background:#CCC;
		width:20px;
	}
	.right{
		position:absolute;
		background:gold;
		width:80px;
		top:0;
		right:0;
	}
	.center{
		background:tomato;
		margin-left:20px;
		margin-right:80px;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>1</div>
		<div class='center'>2</div>
		<div class='right'>3</div>
	</div>
</body>
</html>

三栏布局5-2

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		display:flex;
	}
	.left{
		background:#CCC;
		width:20px;
	}
	.right{
		background:gold;
		width:80px;
	}
	.center{
		background:tomato;
		flex:1;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>1</div>
		<div class='center'>2</div>
		<div class='right'>3</div>
	</div>
</body>
</html>

三栏布局5-3

中间一栏必须放到最后

  • 因为浮动脱离文档流,所以中间栏一定要放到最后面
  • 如果有文字出现,布局就会错乱,导致扩展性不好
  • 这是float所产生的布局影响所导致的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		
	}
	.left{
		background:#CCC;
		float:left;
		width:20px;
	}
	.right{
		background:gold;
		float:right;
		width:70px;
	}
	.center{
		background:tomato;
		margin-left:20px;
		margin-right:70px;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='left'>1</div>
		<div class='right'>3</div>
		<div class='center'>2</div>
	</div>
</body>
</html>

三栏布局5-4

圣杯布局

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.outer{
		padding-left:50px;
		padding-right:60px;
	}
	.left{
		background:pink;
		left:-50px;
		float:left;
		margin-left:-100%;
		position:relative;
		width:50px;
	}
	.right{
		background:gold;
		float:right;
		left:60px;
		position:relative;
		margin-left:-60px;
		width:60px;
	}
	.center{
		background:tomato;
		width:100%;
		float:left;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class='center'>2</div>
		<div class='left'>1</div>
		<div class='right'>3</div>
	</div>
</body>
</html>

三栏布局5-5

双飞翼布局

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
	.center,.left,.right{
		float:left;
	}
	.center{
		background: #ccc;
		width:100%;
	}
	.inner{
		margin: 0 100px;	
	}
	.left{
		width:100px;
		background: pink;
		margin-left:-100%;
	}
	.right{
		width:100px;
		background: tomato;
		margin-left: -100px;
	}
</style>
</head>
<body>
	<div class='outer'>
		<div class="center">
			<div class="inner">inner</div>
	  	</div>
	  	<div class="left">left</div>
	  	<div class="right">right</div>
	</div>
</body>
</html>