水平垂直居中
固定宽高元素水平垂直居中
- 通过margin平移元素整体宽度的一半,使得元素水平垂直居中
.parent{ position:realtive; } .child{ width:300px; height:100px; padding:20px; position:absolute; top:50%; left:50%; margin:-70px 0 0 -170px; }未知宽高元素水平垂直居中
利用2D变换
- 利用2D变换,在水平和垂直两个方向都反向平移宽高的一半,从而使元素水平居中。
.parent{ position:realtive; } .child{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }利用flex布局
- flex布局的justify-content用于设置或检索弹性盒子元素在主轴方向上对齐方式,而align-items属性定义flex子项在flex容器的当前行的侧轴方向上的对齐方式。
.parent{ display:flex; justify-content:center; align-items:center; }利用grid布局
- 不是很推荐的一种方法
.parent{ height:140px; display:grid; } .child{ margin:auto; }利用table布局
- 十分常用的一种方法,常规的登陆注册页面都要用到。需要保证较好的兼容性,还需要用到表格布局。
.outer{ display:table; position:absolute; height:100%; width:100%; } .middle{ display:table-cell; vertical-align:middle; } .inner{ margin-left:auto; margin-right:auto; width:400px; }