css居中常见方法总结

本文详细介绍了使用CSS实现水平和垂直居中的多种方法,包括针对行内元素和块级元素的解决方案,如text-align:center、margin:auto、绝对定位、display:table-cell、display:flex等,适合网页布局初学者及进阶开发者参考。

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

块级元素居中 html代码部分

<div class="parent">
   <div class="child">child</div>
</div>

行内元素居中 html代码部分

<div class="parent">
   <span class="child">child</span>
</div>

水平居中

1. 行内元素 text-align: center;

.parent {
   text-align: center;
}

.

2. 块级元素 margin: auto;

.child {
    width: 100px;
    margin: auto; 
}

垂直居中

1. 行内元素(单行文字垂直居中):设置 line-height = height

.parent {
   height: 200px;
   line-height: 200px;
}

.

2. 块级元素:绝对定位(需要提前知道尺寸)

优点:兼容性不错
缺点:需要提前知道尺寸,margin-top: -(高度的一半); margin-left: -(宽度的一半);

.parent {
    position: relative;
    height: 200px;
}
.child {
    width: 80px;
    height: 40px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-top: -20px;
    margin-left: -40px;
}

.

3. 块级元素:绝对定位 + transform(常用

优点:不需要提前知道尺寸
缺点:css3属性存在兼容性问题

.parent {
    position: relative;
    height: 200px;
}
.child {
    width: 80px;
    height: 40px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%); // 有兼容性问题
}

.

4. 块级元素:绝对定位 + margin: auto;(常用

优点:不需要提前知道尺寸,兼容性好
缺点:这个方法是我最喜欢用的一个,要说缺点的话,我目前还不知道。

.parent {
    position: relative;
    height: 200px;
}
.child {
    width: 80px;
    height: 40px;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}

.

5. 块级元素:display: table-cell

.parent {
    width: 600px;
    height: 200px;
    border: 1px solid red;
    display: table;
}
.child {
    display: table-cell;
    vertical-align: middle;
}

.parent {
    height: 300px;
    border: 1px solid red;
    display: table-cell;
    vertical-align: middle;
}

.

6. 块级元素:display: flex(常用

flex布局 yyds~

.parent {
    width: 600px;
    height: 200px;
    border: 1px solid red;
    display: flex;  /*兼容性问题*/
    align-items: center; /*垂直居中*/
    justify-content: center; /*水平居中*/
}

.

7. 块级元素:calc()

缺点:需要提前知道尺寸,css3属性存在兼容性问题

.parent {
    width: 300px;
    height: 300px;
    position: relative;
}
.child {
    width: 100px;
    height: 100px;
    background: blue;
    padding: -webkit-calc((100% - 100px) / 2);
    padding: -moz-calc((100% - 100px) / 2);
    padding: -ms-calc((100% - 100px) / 2);
    padding: calc((100% - 100px) / 2); /*计算出平均间距*/
    background-clip: content-box;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫老板的豆

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值