1. 背景介绍
居中是前端排版的一个重要话题,今天我们就来梳理一下垂直居中的方法。
2. 知识剖析
布局的解决方案,基于盒状模型,依赖 display 属性 + position 属性 + float 属性 + flexbox,咱们就从这几点入手。
3. 常见问题
垂直居中的方式?
4. 解决方案
HTML 如下:
默认的 CSS 如下:
①子元素 line-height: 100%,代码少,兼容性好,但子元素背景色覆盖了父元素:
②子元素 absolute+auto,兼容性好,但需要设置子元素的高度:
③ 子元素 top+margin-top,兼容性好,但需要设置子元素的高度 :
④ 子元素 absolute+ translateY,无需设置子元素的高度,但兼容性不好:
⑤ 子元素 top: calc(),只需设置子元素,但需要知道子元素的高度,且兼容性不好:
⑥ 父元素 display: flex; 设置很简单,但兼容性不好
⑦ 父元素 display: flex;+ 子元素 margin:auto;设置简单,比 6 稍微复杂,但同样兼容性不好:
⑧ table 布局,兼容性好,但子元素背景色会覆盖父元素,且性能不好:
⑨ 兼容性好,但需要知道父元素高度,且比较复杂:
5. 编码实战
如上
6. 扩展思考
如何水平居中?
方法如下:
①子元素 margin: auto;
②对于行内元素 text-align: center;
③和②相似
④绝对定位 + left+ margin-left
⑤绝对定位 + left+ translatex
⑥子元素 display: table;
⑦父元素 display: flex;+ 子元素 margin:auto;
⑧父元素 display: flex;
评论