宽高固定的情况下

        
HTML
123
<div class="wrap"> <div class="item"></div> </div>

第一种:利用绝对定位,topleft 50%,然后再利用margin-leftmargin-top把盒子移动其宽高的一半实现

        
CSS
1234567891011
.wrap { position: relative; width: 200px; height: 200px; } .item { position: absolute; top: 50%; width: 100px; height: 100px; margin-top: -50px;

第二种:利用绝对定位top,right,bottom,left设置为 0,然后再利用margin:auto实现

        
CSS
123456789101112
.wrap { position: relative; width: 200px; height: 200px; } .item { position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;

第三种:宽高已知,利用绝对定位,top,left 设置 50%,然后再利用 CSS3 属性transform:translate(-50%,-50%)实现

        
CSS
12345678910
.wrap { position: relative; width: 200px; height: 200px; } .item { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);

第四种:利用弹性盒模型,主轴交叉轴居中实现

        
CSS
12345
.wrap { display: flex; justify-content: center; align-items: center; }

第五种:利用grid实现

        
CSS
12345
.wrap { display: grid; justify-content: center; align-items: center; }

第六种:利用 table 实现

        
CSS
1234567
.wrap { display: table-cell; vertical-align: middle; } .item { margin: auto; }