当前位置:首页>网络学院>网页制作>Web标准>文章内容

文字垂直居中问题的解决

[ 来源:近水社区 | 作者:郁闷 | 时间:2008-01-07 | 收藏 | 推荐 ] 【

<!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">
p {
  margin:0;
}
#a {
  width:200px;
  height:50px;
  font-size:12px;
  background-color:#CCCCCC;
  vertical-align:middle;
  display:table-cell;
  position:relative;
}
#a div {
  *position:absolute;
  *top:50%;
}
#a div p {
  *position:relative;
  *top:-50%;
}
</style>
</head>

<body>

<div id="a">
<div><p>这里具有多行文字,高度是50px这里具有多行文字,高度是50px</p></div>
</div>
</body>
</html>

方法:

(1)vertical-align:middle; display:table-cell。这种方法的意思是:将对象强制转换为Table,vertical-align:middle的作用和表格中的valign="center"相同。

本来是很方便的一个属性,但IE不支持这个属性。为了使各浏览器兼容,我们不得不想其他的方法。

(2)在对象内建立一个子对象,并在子对象内再建立一个子对象或段落。网页中:

<div id="a"><div><p>这里具有多行文字,高度是50px这里具有多行文字,高度是50px</p></div></div>

CSS中:

p {margin:0;}:因为在FireFox中默认P是有间距的

#a {height:50px;position:relative;}:设置高度50,如果要是子对象相对它定位,则要设置position:relative

#a div {*position:absolute;*top:50%;}:前面加星号“*”只有IE支持,其他浏览器会忽略此设置。position:absolute设置了此子对象的定位为绝对定位,top:50%设置了显示在距顶端50%的位置,即25px(因为上面设置了父对象的高度为50px)。

#a div p {*position:relative;*top:-50%;}:这段代码只能先理解为向上移动剩下高度的50%。因为top设置了负值,相当于向相反的方向移动。

说明:支持主流浏览器(在IE6,FireFox2下测试)。

(编辑:IT资讯之家 www.it55.com

返回顶部
共2页: 上一页 [1] 2 下一页  

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]