为什么margin:auto不能上下自适应

博客探讨了CSS中盒子居中问题,指出margin:auto仅适用于水平居中,因W3C规范限制,在垂直方向上margin:auto计算值为0。文章解释了块级元素的布局公式,并讨论了实现垂直居中的其他解决方案。

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

面试官很喜欢问的一个问题是:如何使一个盒子水平垂直居中。
.
.
一开始我是想到margin:auto的,可是实际上出来的效果是这样子:
.
在这里插入图片描述
只是左右自适应了,上下自适应的效果没有体现出来。
.
.
查了一下,发现规范就是这么设定的:

-W3C Recommendation
.
在可视化布局内,块级非替换元素在普通流内布局有公式为: 左margin+左border+左padding+width+右padding+右border+右margin = 包含块宽度
.
.
auto能实现水平居中是因为水平方向的 auto的计算值取决于可用空间(剩余空间)。
.
在这里插入图片描述
.
.
而对于高度是没有公式定义的,直接规定margin-top: auto; 和 margin-bottom: auto;时其计算值为0。
.
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值