html代码
<div class="main">
<h1>测试</h1>
</div>
方法一:div使用绝对布局,设置margin:auto,并设置top、left、right、bottom的值相等即可,不一定要都是0。
![5c9273b542302a30e8eac0dbf0364618.png](https://img-blog.csdnimg.cn/img_convert/5c9273b542302a30e8eac0dbf0364618.png)
方法二:绝对布局,用margin来调整。
![fe7e8a0f6a5c32a23896cca93e411dbd.png](https://img-blog.csdnimg.cn/img_convert/fe7e8a0f6a5c32a23896cca93e411dbd.png)
方法三:绝对布局,让left和top都是50%,这在水平方向上让div的最左与屏幕的最左相距50%,垂直方向上一样,所以再用transform向左(上)平移它自己宽度(高度)的50%。
![2907f6bba0e31e67da5717631c521ac8.png](https://img-blog.csdnimg.cn/img_convert/2907f6bba0e31e67da5717631c521ac8.png)
这里补充一下知识点:translate()函数是css3的新特性.在不知道自身宽高的情况下,可以利用它来进行水平垂直居中。当使用:top: 50%;left: 50%;是以左上角为原点,故不处于中心位置。translate(-50%,-50%) 作用是,往上(x轴),左(y轴)移动自身长宽的 50%,以使其居于中心位置。与负margin-left和margin-top实现居中不同的是,margin-left必须知道自身的宽高,而translate可以在不知道宽高的情况下进行居中,tranlate()函数中的百分比是相对于自身宽高的百分比,所以能进行居中。
效果图:
![982d79555c979779b801218ed10ee71b.png](https://img-blog.csdnimg.cn/img_convert/982d79555c979779b801218ed10ee71b.png)