布局效果

这两个种三列布局效果是一样的,实现的效果如上图示所示,其特点为:
- header和footer的宽度为整个浏览器的宽度
- 中间是个三列布局,left和right的宽度是固定的。
- 而middle的内容的宽度是自适应占满中间位置的,高度为三栏中的最大高度
圣杯布局
- 首先把left、middle、right都放出来
- 给它们三个设置上float: left, 脱离文档流;
- 一定记得给container设置上overflow: hidden; 可以形成BFC撑开文档
- left、right设置上各自的宽度
- middle设置width: 100%;
1 2 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中。
1 2 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; }
|
代码
圣杯布局:
1 2 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>
|
双飞翼布局:
1 2 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>
|