我来回答一下水平垂直居中的问题:
1.如果是只有水平居中,如果子元素是块级元素:子元素设置display:block/table;margin: 0 auto;
2.如果只有水平居中,如果子级元素是行内元素或者行内块元素,需要父级设置text-align:center;子级设置display: inline/inline-block;
3.如果只有垂直居中,而且父子元素不脱离标准流:
父元素设置display:table-cell;vertical-align: middle;
2和3一起,可以实现水平垂直居中
4.如果使用定位来实现水平垂直居中:
①如果已知子元素大小,可以设置子元素top: 50%; left: 50%; margin-top和margin-left为负的子元素大小的一半
②如果未知子元素大小,可以设置子元素top: 50%; left: 50%; transform: translate(-50%,-50%)
③如果已知子元素大小,还可以使用top: 0; left: 0; right: 0; bottom: 0; margin: auto;来实现(4个方向的margin都是auto,这个方法margin与子元素大小没有关系)
5.使用flex
父元素display: flex;
主轴居中布局,父元素要用justify-content: center;
交叉轴居中布局: 父元素要用align-item: center;
两个一起用,实现水平垂直居中布局。
![240](https://cdn2.jianshu.io/assets/default_avatar/9-cceda3cf5072bcdd77e8ca4f21c40998.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
IP属地:福建