2018-03-17 前端面试--水平垂直居中
2018-03-17 本文已影响0人
猫熊猫熊
可以分几种情况考虑:
![](https://img.haomeiwen.com/i11142796/f2dad62b3fb6f2a1.png)
(1)块状元素的水平垂直居中:
![](https://img.haomeiwen.com/i11142796/499642a1e2ad1bbc.png)
利用绝对定位和负margin,这时要给块级元素设置width,height;
![](https://img.haomeiwen.com/i11142796/f56780361d2af5f7.png)
![](https://img.haomeiwen.com/i11142796/5e245aa984fbdd97.png)
利用绝对定位+transform:translate属性,可以使不知块级元素宽高的情况下实现居中。
![](https://img.haomeiwen.com/i11142796/063ebaf728d24154.png)
![](https://img.haomeiwen.com/i11142796/72643dfbf270dacd.png)
利用flex盒子,在父元素上设置align-items和justify-items即可实现子块状元素的居中。
还有:对于块状元素,仅仅只实现水平居中的话,可以用margin:0 auto;实现
(2)行内元素的水平垂直居中
![](https://img.haomeiwen.com/i11142796/b52291fb8db721cd.png)
![](https://img.haomeiwen.com/i11142796/834d4c2596add448.png)
在父盒子上使用text-align:center;在子行内元素上设置line-height等于父盒子的height。
![](https://img.haomeiwen.com/i11142796/e4fc95e14fe206f6.png)
将父盒子设置为table类型;子行内元素设置为table-cell类型;设置行内元素的vertical-align;可实现与上面相同的效果。
(3)最后可以使用flex盒子
![](https://img.haomeiwen.com/i11142796/312a8aa23a103c03.png)