如何让一个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;
的元素。