Kevin Cornell在2006年提出的一个布局模型概念,在国内最早是由淘宝UED的工程师传播开来,它的布局要求有几点:
1、三列布局,中间宽度自适应,两边定宽;
2、中间栏要在浏览器中优先展示渲染;
3、允许任意列的高度最高;
4、要求只用一个额外的DIV标签;
5、要求用最简单的CSS、最少的HACK语句;
1.圣杯布局:
DOCTYPE html >
html >
head >
meta charset ="utf-8" >
meta http-equiv ="X-UA-Compatible" content ="IE=edge,chrome=1" >
title > 圣杯布局 title >
style type ="text/css" >
body { background-color : #ffffff ; font-size : 14px ; }
#hd, #ft { padding : 20px 3px ; background-color : #cccccc ; text-align : center ; }
.bd-lft, .bd-rgt, .bd-3-lr, .bd-3-ll, .bd-3-rr { margin : 10px 0 ; min-width : 400px ; }
.main { background-color : #03a9f4 ; color : #ffffff ; }
.aside, .aside-1, .aside-2 { background-color : #00bcd4 ; color : #ffffff ; }
p { margin : 0 ; padding : 20px ; text-align : center ; }
/* 左侧栏固定宽度,右侧自适应 */
.bd-lft {
zoom : 1 ;
overflow : hidden ;
padding-left : 210px ;
}
.bd-lft .aside {
float : left ;
width : 200px ;
margin-left : -100% ; /* = -100% */
position : relative ;
left : -210px ; /* = -parantNode.paddingLeft */
_left : 0 ; /* IE6 hack */
}
.bd-lft .main {
float : left ;
width : 100% ;
}
/* 右侧栏固定宽度,左侧自适应 */
.bd-rgt {
zoom : 1 ;
overflow : hidden ;
padding-right : 210px ;
}
.bd-rgt .aside {
float : left ;
width : 200px ;
margin-left : -200px ; /* = -this.width */
position : relative ;
right : -210px ; /* = -parantNode.paddingRight */
}
.bd-rgt .main {
float : left ;
width : 100% ;
}
/* 左中右 三栏自适应 */
.bd-3-lr {
zoom : 1 ;
overflow : hidden ;
padding-left : 210px ;
padding-right : 210px ;
}
.bd-3-lr .main {
float : left ;
width : 100% ;
}
.bd-3-lr .aside-1 {
float : left ;
width : 200px ;
margin-left : -100% ;
position : relative ;
left : -210px ;
_left : 210px ; /* IE6 hack */
}
.bd-3-lr .aside-2 {
float : left ;
width : 200px ;
margin-left : -200px ;
position : relative ;
right : -210px ;
}
/* 都在左边,右侧自适应 */
.bd-3-ll {
zoom : 1 ;
overflow : hidden ;
padding-left : 420px ;
}
.bd-3-ll .main {
float : left ;
width : 100% ;
}
.bd-3-ll .aside-1 {
float : left ;
width : 200px ;
margin-left : -100% ;
position : relative ;
left : -420px ;
_left : 0px ; /* IE6 hack */
}
.bd-3-ll .aside-2 {
float : left ;
width : 200px ;
margin-left : -100% ;
position : relative ;
left : -210px ;
_left : 210px ; /* IE6 hack */
}
/* 都在右边,左侧自适应 */
.bd-3-rr {
zoom : 1 ;
overflow : hidden ;
padding-right : 420px ;
}
.bd-3-rr .main {
float : left ;
width : 100% ;
}
.bd-3-rr .aside-1 {
float : left ;
width : 200px ;
margin-left : -200px ;
position : relative ;
right : -210px ;
}
.bd-3-rr .aside-2 {
float : left ;
width : 200px ;
margin-left : -200px ;
position : relative ;
right : -420px ;
}
style >
head >
body >
div id ="hd" > 头部 div >
div class ="bd-lft" >
div class ="main" >
p > 主内容栏自适应宽度 p >
div >
div class ="aside" >
p > 侧边栏固定宽度 p >
div >
div >
div class ="bd-rgt" >
div class ="main" >
p > 主内容栏自适应宽度 p >
div >
div class ="aside" >
p > 侧边栏固定宽度 p >
div >
div >
div class ="bd-3-lr" >
div class ="main" >
p > 主内容栏自适应宽度 p >
div >
div class ="aside-1" >
p > 侧边栏1固定宽度 p >
div >
div class ="aside-2" >
p > 侧边栏2固定宽度 p >
div >
div >
div class ="bd-3-ll" >
div class ="main" >
p > 主内容栏自适应宽度 p >
div >
div class ="aside-1" >
p > 侧边栏1固定宽度 p >
div >
div class ="aside-2" >
p > 侧边栏2固定宽度 p >
div >
div >
div class ="bd-3-rr" >
div class ="main" >
p > 主内容栏自适应宽度 p >
div >
div class ="aside-1" >
p > 侧边栏1固定宽度 p >
div >
div class ="aside-2" >
p > 侧边栏2固定宽度 p >
div >
div >
div id ="ft" > 底部 div >
body >
html >
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did101462