2007.09.18 18:45:25
上中下三行布局,上下定高,中间栏自适应浏览器高度,且内容垂直居中。
firefox 2.0 / win ie 6/ win ie 7 /opera 8.5 cn/win safari 测试通过。
对于非ie内核浏览器,通过设定display:table、display:table-row和display:table-cell来模拟表格的表现形式。
最外层#box { display:table; },高度100%,其子层#header/#main/#footer为{ display:table-row; },因此可以模拟表格的行效果,上下定高,则中间不定高的层自适应高度。
#wrap层为{ display:table-cell; }模拟单元格,因此可以设定{ vertical-align:middle; },垂直居中。
由于Win IE不支持{ display:table; },因此,只能采取定位的方式实现。<!--[if IE]>内是针对ie的设定。
点击察看测试页面
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
/>
<
title
>
上中下三行布局,上下定高,中间栏自适应浏览器高度,且内容垂直居中
</
title
>
<
style
type
="text/css"
>
* {
margin:0;
padding:0;
}
html,
body,
#box {
height:100%;
font:small/1.5 "宋体", serif;
}
body {
text-align:center;
}
#box {
text-align:left;
background:#666;
display:table;
width:80%;
margin:0 auto;
position:relative;
}
#box > div {
display:table-row;
}
#header,
#footer {
background:#fcc;
height:50px;
}
#main {
background:#ccf;
}
#main #wrap {
display:table-cell;
background:#ffc;
vertical-align:middle;
}
#text {
text-align:center;
}
</
style
>
<!--
[if IE]>
<style type="text/css">
#header,
#footer {
width:100%;
z-index:3;
position:absolute;
}

#footer {
bottom:0;
}
#main {
height:100%;
z-index:1;
position:relative;
}
#main #wrap {
position:absolute;
top:50%;
width:100%;
text-align:left;
}
#main #text {
position:relative;
width:100%;
top:-50%;
background:#ccc;
}
</style>
<![endif]
-->
</
head
>

<
body
>
<
div
id
="box"
>
<
div
id
="header"
>
header
</
div
>
<
div
id
="main"
>
<
div
id
="wrap"
>
<
div
id
="text"
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
</
div
>
</
div
>
</
div
>
<
div
id
="footer"
>
footer
</
div
>
</
div
>
</
body
>
</
html
>
上中下三行布局,上下定高,中间栏自适应浏览器高度,且内容垂直居中。
firefox 2.0 / win ie 6/ win ie 7 /opera 8.5 cn/win safari 测试通过。
对于非ie内核浏览器,通过设定display:table、display:table-row和display:table-cell来模拟表格的表现形式。
最外层#box { display:table; },高度100%,其子层#header/#main/#footer为{ display:table-row; },因此可以模拟表格的行效果,上下定高,则中间不定高的层自适应高度。
#wrap层为{ display:table-cell; }模拟单元格,因此可以设定{ vertical-align:middle; },垂直居中。
由于Win IE不支持{ display:table; },因此,只能采取定位的方式实现。<!--[if IE]>内是针对ie的设定。
点击察看测试页面
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
/>
<
title
>
上中下三行布局,上下定高,中间栏自适应浏览器高度,且内容垂直居中
</
title
>
<
style
type
="text/css"
>
* {
margin:0;
padding:0;
}
html,
body,
#box {
height:100%;
font:small/1.5 "宋体", serif;
}
body {
text-align:center;
}
#box {
text-align:left;
background:#666;
display:table;
width:80%;
margin:0 auto;
position:relative;
}
#box > div {
display:table-row;
}
#header,
#footer {
background:#fcc;
height:50px;
}
#main {
background:#ccf;
}
#main #wrap {
display:table-cell;
background:#ffc;
vertical-align:middle;
}
#text {
text-align:center;
}
</
style
>
<!--
[if IE]>
<style type="text/css">
#header,
#footer {
width:100%;
z-index:3;
position:absolute;
}
#footer {
bottom:0;
}
#main {
height:100%;
z-index:1;
position:relative;
}
#main #wrap {
position:absolute;
top:50%;
width:100%;
text-align:left;
}
#main #text {
position:relative;
width:100%;
top:-50%;
background:#ccc;
}
</style>
<![endif]
-->
</
head
>

<
body
>
<
div
id
="box"
>
<
div
id
="header"
>
header
</
div
>
<
div
id
="main"
>
<
div
id
="wrap"
>
<
div
id
="text"
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
<
p
>
内容内容
</
p
>
</
div
>
</
div
>
</
div
>
<
div
id
="footer"
>
footer
</
div
>
</
div
>
</
body
>
</
html
>
本文介绍了一种实现上中下三行布局的方法,其中上下行固定高度,中间部分自适应浏览器高度并使内容垂直居中。适用于Firefox 2.0、IE6/7、Opera 8.5cn及Safari等浏览器。

*
782

被折叠的 条评论
为什么被折叠?



