布局效果

这两个种三列布局效果是一样的,实现的效果如上图示所示,其特点为:
- header和footer的宽度为整个浏览器的宽度
- 中间是个三列布局,left和right的宽度是固定的。
- 而middle的内容的宽度是自适应占满中间位置的,高度为三栏中的最大高度
圣杯布局
- 首先把left、middle、right都放出来
- 给它们三个设置上float: left, 脱离文档流;
- 一定记得给container设置上overflow: hidden; 可以形成BFC撑开文档
- left、right设置上各自的宽度
- middle设置width: 100%;
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | #middle,#left,#right{position: relative;
 float: left;
 }
 
 #middle{
 overflow: hidden;
 padding: 0 200px;
 }
 #left{
 margin-left:-100% ;
 left:-200px;
 }
 #right{
 margin-left: -200px;
 left:200px;
 }
 
 | 
双飞翼布局
双飞翼布局和圣杯布局很类似,不过是在middle的div里又插入一个div,通过调整内部div的margin值,实现中间栏自适应,内容写到内部div中。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | #middle,#left,#right{float: left;
 }
 
 #middle{
 overflow: hidden;
 }
 
 #middle .middle-inner{
 margin: 0 200px;
 }
 
 #left{
 margin-left: -100% ;
 }
 #right{
 margin-left: -200px;
 }
 
 | 
代码
圣杯布局:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 
 | <!DOCTYPE html><html lang="en">
 <head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
 <link rel="stylesheet" href="style.css">
 <style>
 *{
 margin: 0;
 padding: 0;
 }
 body{
 min-width: 600px;
 }
 #header,#footer{
 height: 50px;
 width: 100%;
 background: grey;
 }
 #middle,#left,#right{
 float: left;
 }
 #content{
 overflow: hidden;
 padding: 0 200px;
 }
 #left,#right{
 width: 200px;
 height: 200px;
 background: pink;
 }
 #middle{
 width: 100%;
 height: 200px;
 background: yellowgreen;
 }
 #left{
 margin-left:-100% ;
 position: relative;
 left:-200px;
 }
 #right{
 margin-left: -200px;
 position: relative;
 left:200px;
 }
 </style>
 </head>
 <body>
 <div class="wrap">
 <div id="header">header</div>
 <div id="content">
 <div id="middle">
 middle
 </div>
 <div id="left">left</div>
 <div id="right">right</div>
 </div>
 <div id="footer">footer</div>
 </div>
 </body>
 </html>
 
 | 
双飞翼布局:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 
 | <!DOCTYPE html><html lang="en">
 <head>
 <meta charset="UTF-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
 <link rel="stylesheet" href="style.css">
 <style>
 *{
 margin: 0;
 padding: 0;
 }
 .wrap{
 min-width: 600px;
 }
 #header,#footer{
 height: 50px;
 width: 100%;
 background:grey;
 }
 #left,#right{
 width: 200px;
 height: 200px;
 background: green;
 }
 
 #middle{
 background: pink;
 width: 100%;
 float: left;
 height:200px;
 }
 #content{
 overflow: hidden;
 }
 #left{
 float: left;
 margin-left: -100%;
 }
 #right{
 float: left;
 margin-left: -200px;
 }
 .middle-inner{
 margin: 0 200px;
 }
 </style>
 </head>
 <body>
 <div class="wrap">
 <div id="header">header</div>
 <div id="content">
 <div id="middle">
 <div class="middle-inner">
 middle
 </div>
 </div>
 <div id="left">left</div>
 <div id="right">right</div>
 </div>
 <div id="footer">footer</div>
 </div>
 </body>
 </html>
 
 |