本文只讨论元素宽高未知的情况。元素宽高未知指的是在居中的过程中,不依赖于元素的宽高。
通过position和margin
- 通过
margin
就可以做到令元素水平居中。 - 再通过
position
令元素脱离文档流(不脱离无法做到垂直居中),并设置top
、right
、bottom
、left
均为0,就可以使得元素在垂直方向上也居中。
1 | <div id="outer"> |
通过position和transform
- 通过
position
将元素的左上角放到包含元素的中心。 - 再通过
transform
将元素的中心移动到包含元素的中心。
1 | <div id="outer"> |
通过flex
1 | <div id="outer"> |