核心实现:中间三栏都得使用浮动再加上relative,而后父元素使用padding空出左栏和右栏的宽度位置,中间元素使用100%宽度,html
这样左中右就已经在一竖列了,配合浮动使用margin-left(右边栏right): -100%可让margin基于自身往左(往右)偏移(必定要在所有都浮动的同级元素使用才有效),在这里布局
经过使用可让左右边栏和中间栏进行重合,再使用定位left(right),把边栏移到基于自身的指定位置就行。调试
核心实现:中间三栏都得使用浮动,中间栏宽度设为100%嵌套一个子盒子,子盒子用margin撑出两边栏的宽度,左边栏是使用margin-left:-100%使多列变为一行,右边栏使用margin-left: -边栏宽度 实现一行code
附录: 代码htm
圣杯 <!DOCTYPE html\> <html lang\="en"\> <head\> <meta charset\="UTF-8"\> <meta name\="viewport" content\="width=device-width, initial-scale=1.0"\> <title\>Document</title\> <style\> body { min-width: 550px; } #container { padding-left: 200px; padding-right: 150px; } #container .column { position: relative; float: left; } #center { width: 100%; } #left { width: 200px; right: 200px; margin-left: \-100%; } #right { width: 150px; margin-right: \-150px; } </style\> </head\> <body\> <div id\="container"\> <div id\="center" class\="column"\>1111</div\> <div id\="left" class\="column"\>222</div\> <div id\="right" class\="column"\>333</div\> </div\> </body\> </html\> 双飞翼~~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> body { min-width: 500px; } #container { width: 100%; } .column { float: left; } #center { margin-left: 200px; margin-right: 150px; } #left { width: 200px; margin-left: -100% } #right { width: 150px; margin-left: -150px; } </style> </head> <body> <div id="container" class="column"> <div id="center">1111</div> </div> <div id="left" class="column">222</div> <div id="right" class="column">333</div> </body> </html>