实现三栏布局的三种方式
1.[圣杯布局]、[双飞翼布局]
2.绝对定位法
左右div设置为绝对定位;左div设置为 left: 0px;
右div设置为 right: 0px;
如:
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
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> html,body{ margin: 0px; width: 100%; } h3{ height: 100px; margin: 20px 0 0; } #left,#right{ width: 200px; height: 200px; background-color: #ffe6b8; position: absolute; top: 120px; } #left{ left: 0px; } #right{ right: 0px; } #center{ margin: 2px 210px; background-color: #eee; height: 200px; } </style> <body> <h3>实现三列宽度自适应布局</h3> <div id="left">我是左边</div> <div id="right">我是右边</div> <div id="center">我是中间</div> </body> </html>
|
该布局的不足:因为是绝对定位,如果页面上有其他的内容,top的值要小心处理,最好给CSS样式进行一个初始化。
3.使用自身浮动法
自身浮动法的原理就是使用对左右使用分别使用float:left和float:right,float使左右两个元素脱离文档流,中间元素正常在正常文档流中,使用margin指定左右外边距对其进行一个定位。
如下:
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
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> html,body{ margin: 0px; width: 100%; } h3{ height: 100px; margin: 20px 0 0; } #left,#right{ width: 200px; height: 200px; background-color: #ffe6b8; } #left{ float: left; } #right{ float: right; } #center{ margin: 2px 210px; background-color: #eee; height: 200px; } </style> <body> <h3>实现三列宽度自适应布局</h3> <div id="left">我是左边</div> <div id="right">我是右边</div> <div id="center">我是中间</div> </body> </html>
|
该布局法的好处是受外界影响小,但是不足是 三个元素的顺序,center一定要放在最后,这是和绝对定位不一样的地方,center占据文档流位置,所以一定要放在最后,左右两个元素位置没有关系。当浏览器窗口很小的时候,右边元素会被击倒下一行。