css绝对居中几种方法

 我来答
百度网友547d3c5
2018-06-19
知道答主
回答量:25
采纳率:40%
帮助的人:2.1万
展开全部
水平或者垂直居中单一的要求很好做到,我说几种自己总结的常用的水平且垂直居中的几种方法:
第一种 借助inline-block的特点
#d1{
display:inline-block;
width:500px;
height:500px;
border:1px solid red;
text-align:center;
}
#d1:after{
content:"";
display:inline-block;
height:100%;
vertical-align:middle;
background:#000;
}
#d2{
display:inline-block;
width:200px;
height:200px;
border:1px solid red;
vertical-align:middle;
}
<div id="d1">
<div id="d2"></div>
</div>
第二种 利用css的transform 好用但是兼容性不好,IE10+以及其他现代浏览器才支持(手机开发可忽略)
.box{width:300px;height:300px;border:1px solid red;position:relative;}
.content{
position:absolute;
width:100px;
height:100px;
border:1px solid red;
margin:0 auto;
top:50%;left:50%;
/* transform:translateY(-50%); 仅垂直居中*/
/* transform:translateX(-50%); 仅水平居中*/
transform: translate(-50%, -50%);
/*
若父容器下只有一个元素,且父元素设置了高度,则只需要使用相对定位即可
父元素{
height:xxx;
}
.子元素 {
position: relative;
top: 50%;
transform: translateY(-50%);
}
*/

}
<div class="box">
<div class="content"></div>
</div>
第三种:绝对定位之后的偏移
.box{
border:1px solid red;
width:300px;height:300px;position:relative;
}
.content{
border:1px solid red;
width: 200px; height: 200px;
position: absolute; left: 50%; top: 50%;
margin-top: -100px; /* 高度的一半 */
margin-left: -100px; /* 宽度的一半 */
}
<div class="box">
<div class="content"></div>
</div>
第四种:定位之后的margin: auto
.box{
border:1px solid red;
width:300px;height:300px;position:relative;
}
.content{
width: 200px;
height: 200px;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
margin: auto;
border:1px solid red;
}

<div class="box">
<div class="content"></div>
</div>
第五种 flex布局
<div style="display:flex; display: -webkit-flex; justify-content:center;align-items:center;width: 300px; height: 300px;border:1px solid red;">
<div style="width: 200px; height: 200px;border:1px solid red;"></div>
</div>
第六种利用display:table-cell的vertical-align属性 子元素加上“display:inline-block;”可水平居中
<div style="display:table-cell;vertical-align:middle;text-align:center;width:300px;height:300px;border:1px solid red;">
<div style="border:1px solid red;width:200px;height:200px;display:inline-block;"></div>
</div>
第七种 使用css3中的display:-webkit-box的用法这种方法还没有得到浏览器的普遍支持,如有兴趣,自行学习
匿名用户
2018-06-19
展开全部
1.css实现居中
缺点:需要提前知道元素的宽度和高度。
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 600px; height: 400px; position: absolute; left: 50%; top: 50%; border:1px solid #000; background:red; margin-top: -200px; /* 高度的一半 */ margin-left: -300px; /* 宽度的一半 */ } </style> </head> <body> <div> </div> </body> </html>

2、css3实现水平垂直居中
注意:无论元素的尺寸是多少,都可以居中。不过IE8以上才兼容这种写法,移动端可忽略。
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 600px; height: 400px; position: absolute; left: 50%; top: 50%; border:1px solid #000; background:red; transform: translate(-50%, -50%); /* 50%为自身尺寸的一半 */ } </style> </head> <body> <div> </div> </body> </html>

3、margin:auto实现居中
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 600px; height: 400px; position: absolute; left: 0; top: 0; right: 0; bottom: 0; border:1px solid #000; background:red; margin: auto; /* 有了这个就自动居中了 */ } </style> </head> <body> <div> </div> </body> </html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式