1.
<div style="width:200px;height:200px;border:solid blue;position:relative;"> <div style="width:100px;height:100px;margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: red;"></div> </div>
2.
<div style="width:200px;height:200px;border:2px solid #000;display:table-cell;vertical-align:middle;text-align: center;"> <div style="width:100px;height:100px;display:inline-block;background-color: red;"></div> </div>
子div如果是block元素,在里面加一个margin:auto;,效果也一样
<div style="width:200px;height:200px;border:2px solid #000;display:table-cell;vertical-align:middle;text-align: center;">
<div style="width:100px;height:100px;margin:auto;"></div>
</div>
vertical:middle是让table-cell里面的内容垂直居中,而不是自身垂直居中
https://www.cnblogs.com/cowboybusy/p/10200295.html 最后一个例子也是让里面内容垂直居中
3.
<div style="width:200px;height:200px; border:2px solid #000;position:relative;"> <div style="width:100px;height:100px;margin:auto;position:absolute;left:50%;top:50%;margin-left: -50px;margin-top:-50px;background-color: red;"></div> </div>
来源:https://www.cnblogs.com/cowboybusy/p/10531625.html