参考回答:
(1)margin:auto法
css:div{width: 400px;height: 400px;position: relative;border: 1px solid #465468;}img{position: absolute;margin: auto;top: 0;left: 0;right: 0;bottom: 0;}html:<div><img src="mm.jpg"></div>定位为上下左右为0,margin:0可以实现脱离文档流的居中.
(2)margin负值法
.container{width: 500px;height: 400px;border: 2px solid #379;position: relative;}.inner{width: 480px;height: 380px;background-color: #746;position: absolute;top: 50%;left: 50%;margin-top: -190px; /height的一半/margin-left: -240px; /width的一半/}
补充:其实这里也可以将marin-top和margin-left负值替换成,transform:translateX(-50%)和transform:translateY(-50%)
(3)table-cell(未脱离文档流的)
设置父元素的display:table-cell,并且vertical-align:middle,这样子元素可以实现垂直居中。
css:div{width: 300px;height: 300px;border: 3px solid #555;display: table-cell;vertical-align: middle;text-align: center;}img{vertical-align: middle;}(4)利用flex
将父元素设置为display:flex,并且设置align-items:center;justify-content:center;



