双飞翼的步骤与原理:
双飞翼就像画鸟一样,先画身体,再画翅膀,首先创建一个父级也就是一个大容器container,设置页面的总宽度并居中
其次创建DOM结构顺序很重要里面放内容、左部,和右部,内容必须创建一个父级块用来设置参数(如果不创建会把lift,和right挤掉)其中main宽度100%,left,right宽度固定,main,left,right的高度暂时先设置为固定值,有了内容填充时再设置为100%,随内容自适应变化,main,left,right全部左浮动,因为前面的wrap块宽度为100%,必须导致left,right全部被挤到了下面, left设置,margin:-1000px;或者 margin-left:-100%(100%就是父级块的宽度1000px,负数表示方向相反,即向左缩进,最终到达父块起始点:0,0)content内容块,添加左右外边距,将内容区挤压出来: margin: 0 200px;已经给了一个宽度100%。
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>双飞布局</title> <style type="text/css"> .toubu,.weibu{ width: 100%; height: 60px; background-color:#E9E9E9; } .weibu{ clear: both; } .neirong{ width:1000px; background-color:#3C3940; margin:0 auto; min-height: 100%; text-align: center; line-height: 60px; } .zhuti{ width: 1000px; background-color: yellow; margin:0 auto; overflow: hidden; } .zhuti1{ width:100%; min-height:600px; float:left; background-color: red; } .main{ min-height:600px; background-color: lightgray; margin:0 200px; } .zuobu{ width:200px; min-height:600px; background-color: lightskyblue; float:left; margin-left:-100%; } .youbu{ width:200px; min-height:600px; background-color: lightgreen; float:left; margin-left:-200px; } </style> </head> <body> <div class="toubu"> <div class="neirong">头部</div> </div> <div class="zhuti"> <div class="zhuti1"> <div class="main">中间</div> </div> <div class="zuobu">左部</div> <div class="youbu">右部</div> </div> <div class="weibu"> <div class="neirong">尾部</div> </div> </body> </html>
点击 "运行实例" 按钮查看在线实例
2圣杯的步骤及原理
圣杯就是利用padding来实现的。
给main,left,right,创建一个父级container,main在第一位,其顺序是main,left,right,container的宽度等于main的宽度,先给container600px,main100%,left和right都是固定的200px,让他们浮动起来,效果和双飞一样main在上边left和right在下边,还是和双飞一样把left和right,margin-left就会覆盖main在用padding撑大container
在用相对定位把left和right移动到两边。
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>圣杯</title> <style type="text/css"> .head ,.weibu{ width:100%; height: 65px; background-color:#E9E9E9; } .conntet{ margin:0 auto; background-color: #3C3940; text-align: center; line-height: 65px; width:1000px; min-height: 65px; } .zhuti{ width:600px; margin:0 auto; background-color: yellow; overflow: hidden; padding: 0 200px; } .main{ width:100%; min-height: 600px; background-color: lightgray; float:left; } .left{ width:200px; min-height: 600px; background-color: lightgreen; float:left; margin-left: -100%; position: relative; left:-200px; } .right{ width:200px; min-height: 600px; background-color: lightskyblue; float:left; margin-left: -200px; position: relative; right:-200px; } </style> </head> <body> <div class="head"> <div class="conntet">网页头部</div> </div> <div class="zhuti"> <div class="main">中部</div> <div class="left">左部</div> <div class="right">右部</div> </div> <div class="weibu"> <div class="conntet">网页底部</div> </div> </body> </html>
点击 "运行实例" 按钮查看在线实例
手写代码如下: