水平居中
1、对于行内元素(inline):text-align:center(只能对图片,文字等进行水平居中);
2、对于块级元素(block):设置宽度且margin-left和margin-right设为auto,对浮动元素或绝对定位元素无效。
3、对于多个块级元素:对父元素设置text-align:center;对子元素设置display:inline-block;或者使用flex布局。
垂直居中
1、对于行内元素(inline)
单行:设置上下padding相等,或者设置line-height和height相等。
多行:设置上下padding相等,或者使用flex布局。
2、对于块级元素(block)
已知高度:子元素使用绝对布局top:50%;再用负的margin-top把子元素往上拉到一半的高度
未知高度:子元素使用绝对布局position:absolute;top:50%;transform:translateY(-50%);
水平垂直居中
1、已知高度和宽度:先用绝对布局top:50%;left:50%;再用和宽高的一半相等的负的margin把子元素拉回到居中的位置,这个负的margin值就取元素宽度或高度的一半。
2、未知高度和宽度:先用绝对布局top:50%;left:50%;再设置transform:translate(-50%,-50%);
3、使用Flexbox: justify-content:center; align-items:center;