如何实现div的上下左右都居中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现div的上下左右都居中?相关的知识,希望对你有一定的参考价值。
把 绿色那个div 上下页居中
参考技术A 通常我们用到的css布局都是左右居中,经典css写法如下:body
margin:0;
padding:0;
width:100%;
height:100%;
div
margin:0
auto;
width:500px;
height:auto;
body
margin:0;
padding:0;
width:100%;
height:100%;
div
margin:0
auto;
width:500px;
height:auto;
上面是经典的左右居中的css写法,那么像登录框那些比较小得div块只是左右居中是否不是太美观,如果上下左右都居中这是
大多数网站的做法,下面是一个比较经典的div上下左右居中的css写法:
body
margin:0;
padding:0;
width:100%;
height:100%;
div
position:absolute;
top:50%;
left:50%;
margin-top:-250px;
margin-left:-250px;
/*此时宽和高都要固定*/
width:500px;
height:500px;
body
margin:0;
padding:0;
width:100%;
height:100%;
div
position:absolute;
top:50%;
left:50%;
margin-top:-250px;
margin-left:-250px;
/*此时宽和高都要固定*/
width:500px;
height:500px;
上面的margin可以合并:margin:-250px
0
0
-250px;
大概原理就是:布局需用position,绝对布局absolute还是相对布局relative得看父容器,top,left相对于顶部和左部都相距整个容器的50%,然后在利用margin,向上回退div高的50%即:margin-top:-250px
向左回退div宽的50%即:margin-left:-250px
CSS实现DIV水平居中和上下垂直居中
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>上下垂直居中 在线演示 DIVCSS5</title>
<style>
#main
position: absolute;
width:400px;
height:200px;
left:50%;
top:50%;
margin-left:-200px;
margin-top:-100px;
border:1px solid #00F
/*css注释:为了方便截图,对CSS代码进行换行*/
</style>
</head>
<body>
<div id="main">DIV水平居中和上下垂直居中<a href="http://www.divcss5.com/">DIVCSS5</a></div>
</body>
</html>
水平垂直居中原理介绍这里使用了绝对定位position:absolute,使用left和top设置对象距离上和左为50%,但如果设置50%,实际上盒子是没有实现居中效果,所以又设置margin-left:-200px;margin-top:-100px;,这里有个技巧是,margin-left的值是宽度一半,margin-top的值也是对象高度一半,同时设置为负,这样就实现了水平和垂直居中。
以上是关于如何实现div的上下左右都居中?的主要内容,如果未能解决你的问题,请参考以下文章