1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6 </head>
7
8 <style>
9 *{
10 margin: 0;
11 padding: 0;
12 }
13 .main{
14 width:300px;
15 height:400px;
16 position: relative;
17 top:0;
18 left:0;
19 background-color: antiquewhite;
20 }
21 .center{
22 position: absolute;
23 width:100px;
24 height:100px;
25 top:50%;
26 left:50%;
27 background-color: red;
28 transform: translate(-50%,-50%);
29 }
30
31 </style>
32 <body>
33
34
35 <div class="main">
36 <div class="center">
37 </div>
38 </div>
39 </body>
40 </html>
效果:

第二种:flex布局垂直居中
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Title</title>
6
7 <style>
8 html,body {
9 width: 100%;
10 height: 100%;
11 margin: 0;
12 padding: 0;
13 }
14
15 .main{
16 position: absolute;
17 display: flex;
18 align-items:center;
19 justify-content: center;
20 width:500px;
21 height:600px;
22 background-color: orange;
23
24 }
25 .content {
26 width:300px;
27 height:300px;
28 background-color: red;
29 }
30 </style>
31 </head>
32 <body>
33 <div class="main">
34 <div class="content"></div>
35 </div>
36
37 </body>
38 </html>
效果:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><style> *{ margin: 0; padding: 0; } .main{ width:300px; height:400px; position: relative; top:0; left:0; background-color: antiquewhite; } .center{ position: absolute; width:100px; height:100px; top:50%; left:50%; background-color: red; transform: translate(-50%,-50%); } </style><body><div class="main"> <div class="center"> </div></div></body></html>