块级元素水平垂直居中方法

本文介绍了四种方法实现块级元素的水平垂直居中:1) 使用绝对定位和外边距;2) 利用CSS3的flex布局;3) 结合绝对定位与transform;4) 设置绝对定位及四边偏移。每种方法都有对应的效果图和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.已知块级元素的宽和高,使用绝对定位absolute和外边距实现水平垂直居中。

父元素position:relative,子元素position:absolute;top:50%;left:50%;margin-top:-height/2;margin-left:-width/2;

(思想:先把块级元素中的左上角定位到父元素的中心,然后再向上向左偏移本身的一半,就达到了是本身的中心居中的目的)

效果图如下:

代码:

 1 <div class="box">
 2     <div class="center-box1">
 3         <p>【第一种方法】知道长和宽,使用绝对定位+外边距设定水平垂直居中</p>
 4     </div>
 5 </div>
 6 
 7 .box {
 8     background: #6c94be;
 9      100%;
10     height: 450px;
11     position: relative;  
12 }
13 .center-box1 {
14     position: absolute;
15     top: 50%;
16     left: 50%;
17     margin-top: -100px;
18     margin-left: -100px;
19      200px;
20     height: 200px;
21     background: #5B83AD;
22 }

2.使用css3 display:flex(IE存在兼容性问题)

父元素样式属性display:flex;子元素使用margin:auto。这种方式在子块级元素宽高不确定的时候(宽高会自适应为其里面内容的宽高)依然可以使用。

效果图如下:

代码:

 1 <div class="box">    
 2     <div class="center-box2">
 3         <p>【第二种方法】使用css3样式属性display:flex设定水平垂直居中</p>
 4     </div>
 5 </div>
 6 
 7 .box {
 8     background: #6c94be;
 9      100%;
10     height: 450px;
11     display: flex;
12 }
13 .center-box2 {
14     margin: auto;
15      200px;
16     background: #5B83AD;
17 }

3.使用绝对定位+CSS3 transform(由于transform中translate偏移的百分比都是相对于自身而言的,所以不像方法一种那样必须知道子元素的宽高才行,但是对于IE只有IE9+才支持)

效果图如下:

代码:

 1 <div class="box">    
 2     <div class="center-box3">
 3         <p>【第三种方法】使用css3样式属性transform,transform中translate偏移的百分比值是相对于自身大小的</p>
 4     </div>
 5 </div>
 6 
 7 .box {
 8     background: #6c94be;
 9      100%;
10     height: 450px;
11     position: relative;  
12 }
13 
14 .center-box3 {
15     position: absolute;
16     top: 50%;
17     left: 50%;
18     transform: translate(-50%,-50%);
19     background: #5B83AD;
20      200px;
21 }

4.已知子元素的宽和高,设置其样式属性position:absolute;top:0;left:0;bottom:0;right:0;margin:auto;

效果图如下:

代码:

 1 <div class="box">    
 2     <div class="center-box4">
 3         <p>【第四种方法】已知宽和高,绝对定位+margin:auto;</p>
 4     </div>
 5 </div>
 6 
 7 .box {
 8     background: #6c94be;
 9      100%;
10     height: 450px;
11     position: relative;
12 }
13 .center-box4 {
14     position: absolute;
15     top: 0;
16     left: 0;
17     bottom: 0;
18     right: 0;
19      200px;
20     height: 200px;
21     background: #5B83AD;
22     margin: auto;
23 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值