CSS布局实例:上中下三行,中间自适应

CSS布局实例:上中下三行布局,上下定高,中间栏自适应浏览器高度,且内容垂直居中。本文代码在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; },因此,只能采取定位的方式实现。内是针对ie的设定。

以下是引用片段:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<htmlxmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/> 
<title>上中下三行布局,上下定高,中间栏自适应浏览器高度,且内容垂直居中</title> 
<styletype="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:0auto; 
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> 
<!--[ifIE]> 
<styletype="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> 
<divid="box"> 
 <divid="header">header</div> 
 <divid="main"> 
  <divid="wrap"> 
  <divid="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> 
 <divid="footer">footer</div> 
</div> 
</body> 
</html>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值