如何巧妙运用margin-top实现table-cell的垂直居中技巧?
- 内容介绍
- 文章标签
- 相关推荐
者常见痛点的观点是。margin‑top 在 display:table‑cell 中失效
在实际项目里很多同学都会尝试直接给 table‑cell 子元素加 margin‑top 来实现垂直居中,却发现根本没有任何效果。按理说,至于原因就在于,
-
table‑cell 本质上模拟的是
单元格 它的外边距会被浏览器忽略。 -
基线对齐 + 文字居中 已经由
vertical-align: middle;完成,额外的margin-top并不会参与布局计算。 - float、position:absolute 等属性会破坏 table‑cell 的默认行为导致居中失效或出现不可预期的偏移。
如果不想改动整体结构,如何“巧妙”借助 margin‑top 实现垂直居中?
思路是让父容器保持 display:table-cell子元素改为普通块级或行内块,接下来通过负的 margin‑top 把子元素往上拉回到中心位置。
者常见痛点的观点是。margin‑top 在 display:table‑cell 中失效
在实际项目里很多同学都会尝试直接给 table‑cell 子元素加 margin‑top 来实现垂直居中,却发现根本没有任何效果。按理说,至于原因就在于,
-
table‑cell 本质上模拟的是
单元格 它的外边距会被浏览器忽略。 -
基线对齐 + 文字居中 已经由
vertical-align: middle;完成,额外的margin-top并不会参与布局计算。 - float、position:absolute 等属性会破坏 table‑cell 的默认行为导致居中失效或出现不可预期的偏移。
如果不想改动整体结构,如何“巧妙”借助 margin‑top 实现垂直居中?
思路是让父容器保持 display:table-cell子元素改为普通块级或行内块,接下来通过负的 margin‑top 把子元素往上拉回到中心位置。

