带你3分钟掌握常见的水平垂直居中面试题

本文最后更新于:2022年2月18日 中午

大家好,我是Smooth,一名大二的前端爱好者,目标是想要成为一名前端开发工程师

这是一篇关于css 居中知识的总结,只要这些都了解了,居中这方面面试就没问题了

只要涉及到CSS就绕不开定位问题,尤其是盒子居中。居中又分为水平居中和垂直居中,有多种实现方式,下面我便一一列出来。

水平居中

1. inline元素:text-align: center
2. block元素:margin: 0 auto
3. absolute元素:left: 50% + margin-left负值(值为该元素宽度的一半)
4. absolute元素:left: 50% + transform: translateX(-50%)

垂直居中

1. inline元素:line-height的值等于height值
2. absolute元素:top:50%+margin-top负值(值为该元素高度的一半)
3. absolute元素:top:50%+transform: translateY(-50%)
4. absolute元素:有固定宽高度+top,left,bottom,right=0 + margin:auto

水平垂直居中

就是上述的水平居中+垂直居中合起来
这里我举几个常用的例子:

1. 放在定位是relative盒子内的absolute盒子:

top: 50%;left: 50%;transform: translate(-50%,-50%);


2. 知道盒子的宽度和高度

top: 50%;left: 50%;

加上 margin-left 负值(值为该元素宽度的一半);margin-top负值(值为该元素高度的一半)


3. 放在定位是relative盒子内的absolute盒子且该盒子有固定宽高:

top,left,bottom,right=0 + margin:auto


4. CSS3弹性布局(flex)

如果使用CSS3的弹性布局(flex)的话,问题就会变得容易多了。使用CSS3的弹性布局很简单,只要设置父元素设置成以下属性即可

display:flex // flex布局

align-items:center;// 元素水平居中

justify-content:center;// 元素垂直居中


以上便是这篇教程的全部内容啦

最后,我叫Smooth,在今年2022年我也会尽自己所能书写更多前端教程~

掘金:https://juejin.cn/user/1302297507801358

CSDN:https://i.csdn.net/#/user-center/profile

最近发文计划为 Webpack 以及 性能优化 知识体系

同时也可扫码关注我的公众号,公众号同步更新


作者:Smooth

文章链接:http://example.com/2022/02/14/%E5%B8%A6%E4%BD%A03%E5%88%86%E9%92%9F%E6%8E%8C%E6%8F%A1%E5%B8%B8%E8%A7%81%E7%9A%84%E6%B0%B4%E5%B9%B3%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%E9%9D%A2%E8%AF%95%E9%A2%98/

版权说明:本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!