用inline-block和vertical-align,通过行内块级元素的方式实现全屏居中;
利用:before伪类选择器,模拟一个虚拟行内块级元素;
行内块级元素换行会产生间隙,这个间隙跟font-size的大小有关,so在居中的时候需要利用margin负边距的方式去掉间隙;
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>居中</title>
<style type="text/css">
body {
margin:0;
_height:100%; /*兼容IE6*/
}
.container {
width: 100%;
height: 100%;
/*100%全屏需要使用定位*/
position: absolute;
top: 0;
left: 0;
/*使行内元素或者行内块级元素水平居中*/
text-align: center;
background-color: #ccc;
}
.container:before {
content: "";
display: inline-block;
height: 100%;
vertical-align: middle;
}
.center-p {
background-color: yellow;
display: inline-block;
vertical-align: middle;
}
</style>
</head>
<body>
<div class="container">
<div class="center-p">
table-cell居中
</div>
</div>
</body>
</html>
网友评论