一、三列布局,中间自适应css
<div class="container"> <div class="left"></div> <div class="right"></div> <div class="center"></div> </div>
不足:若是顶部还有自适应高度的东西,如导航,则top的值难以肯定.css3
好处:三个div的位置能够随意替换. 这样能够实现优先展现中间区域的内容:先写中间区域的内容app
二、使用浮动布局
<div class="container"> <div class="left"></div> <div class="right"></div> <div class="center"></div> </div>
*{ margin:0; padding:0; } .container{ min-width: 650px; width: 80%; height: 1200px; margin:0 auto; //此处设置让包裹器自适应剧中 background-color: aqua; } .left{ float:left; width:200px; height:100%; left:0; background-color: red; } .right{ float:right; width:200px; height:100%; float: right; background-color: black; } .center{ min-width: 200px; margin:0 210px; background-color: yellow; height:500px; }
不足:center必须写在最后flex
三、圣杯模式spa
圣杯布局的原理是margin负值法。使用圣杯布局首先须要在center元素外部包含一个div,包含div须要设置float属性使其造成一个BFC,并设置宽度,而且这个宽度要和left块的margin负值进行配合code
<div class="container"> <div class="wrapper"> <div class="center"></div> </div> <div class="left"></div> <div class="right"></div> </div>
*{ margin:0; padding:0; } .container{ min-width: 650px; width: 80%; height: 1200px; margin:0 auto; //此处设置让包裹器自适应剧中 background-color: aqua; } .wrapper{ width: 100%; height:100%; float:left; } .center{ margin:0 210px; background-color: black; height: 100%; } .left{ float:left; background-color: yellow; width:200px; height:100%; margin-left: -100%; } .right{ float:left; background-color: yellow; width:200px; height:100%; margin-left: -200px; }
center必须先写,而后left和right利用margin的负值实现布局;blog
要点:对于left快的margin负值必定要等于wrap的宽度。文档
四、css3新特性it
在外围包裹一层div,设置为display:flex;中间设置flex:1;可是盒模型默认牢牢挨着,可使用margin控制外边距。
<div id = "box"> <div id = "left_box"></div> <div id = "center_box"></div> <div id = "right_box"></div> </div>
#box{width:100%;display: flex; height: 100px;margin: 10px;} #left_box,#right_box{width: 200px;height: 100px; margin: 10px; background-color: lightpink} #center_box{ flex:1; height: 100px;margin: 10px; background-color: lightgreen}
注意: center必定要放到中间。