简明现代魔法 -> CSS层叠样式表 -> CSS 实现垂直居中

CSS 实现垂直居中

2010-03-18

水平居中我们知道最简便的方法就是margin:auto,但是margin只是相对宽度有效。

如果垂直居中的元素高度已知,这个比较简单,也不需要额外的辅助元素。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"   />
<meta http-equiv="cache-control" content="no-cache"   />
<style>
<!--
html, body {
        height: 100%;
        margin: 0;
        padding: 0;
}
body {
        position: relative;
}
#div {
background: blue;
color: #fff;
position: absolute; 
top: 50%;
left: 50%;
height: 240px;
width: 240px;
margin: -120px 0 0 -120px;
}
--></style>
</head>
<body>
<div id="div">
i'm Mr. Middle.
</div>
</body>
</html>

如果居中元素高度可变,这个需要额外的一个wrapper元素,用table-cell的方式来模拟表格的居中实现,当然,早期的ie又是另一招,具体可见代码。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"   />
<meta http-equiv="cache-control" content="no-cache"   />
<style>
<!--
html, body {
     height: 100%;
     margin: 0 auto;
     padding: 0;
}
body {
     position: relative;
     display: table;
}
#wrapper {
     display: table-cell;
     vertical-align: middle;
     text-align: middle;
}
#div {
     background: blue;
     color: #fff;
}
* html #wrapper, *+html #wrapper {
     position: absolute;
     top: 50%;
}
* html #div, *+html #div {
     position: relative; 
     top: -50%;
}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="div">
i'm Mr. Middle.

<br />
</div>
</div>
</body>
</html>

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们