如何让一个div元素在它的父容器中垂直水平居中呢?
一、实现方式
1 | <div class="parent"> |
1. 行内元素特性 table-cell + vertical-align + inline-block + text-align
1 | .parent { |
2. 绝对定位 absolute + transform
1 | .parent { |
3. flex布局 flex + justify-content + align-items
1 | .parent { |
3. grid布局 grid + justify-self + align-self
1 | .parent { |
二、补充说明
以上均是考虑到页面内容不定宽高的情况。事实上如果父元素和子元素宽高度确定,也可以直接用padding、magin计算的方式使其垂直居中。
注意
disply: table-cell;的元素,不支持设置width: 100%;; 如果想实现width: 100%;的效果最好给其设置一个disply: table;的元素。