水平居中
行内元素居中
利用text-align 实现行内元素的居中1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
        .parent{
            text-align: center;
        }
        .child{
            display: inline-block;
        }
    </style>
</head>
<body>
<div class="parent">
    <div class="child">Demo</div>
</div>
</body>
</html>
块级元素水平居中
可以使用外边距margin-left margin-right 设置为auto即可。则两边都可以水平空出距离。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
        .parent{
            margin: 0 auto;
            width: 100px; /* 必须设置width */
        }
    </style>
</head>
<body>
<div class="parent">
    Demo
</div>
</body>
</html>
使用table+margin方法。将子元素设置为块级表格来显示1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
        .parent{
            display: table;
            margin: 0 auto;
            width:100px;
            /* 必须设置width */
        }
    </style>
</head>
<body>
<div class="parent">
    Demo
</div>
</body>
</html>
使用absolute+transform的方法。
将父元素设置为相对定位,再将子元素设置为绝对定位,向右移动子元素,移动距离为父元素的一半,
最后通过向左移动子元素的一半宽度来达到水平居中。
tranform属于css3的属性。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
        .parent{
            position: relative;
        }
        .child{
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
        }
    </style>
</head>
<body>
<div class="parent">
  <div class="child">
      Demo
  </div>
</div>
</body>
</html>
使用flex+justify-content1
2
3
4
5
6
7
8
9
10<style>
  .parent {
    display: flex;
    justify-content:center;
  }
  </style>
浮动元素水平居中
1.对于定宽的浮动元素,通过子元素设置relative+负margin
2.对于不定宽的浮动元素,父子容器都用相对定位
3.通用方法(不管定宽还是不定宽):都使用flex布局。
1.通过浮动1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
       
        .child {
            position:relative;
            left:50%;
            margin-left:-250px;
        }
    </style>
</head>
<body>
<div class="parent">
    <span class="child" style="float: left;width: 500px;">我是要居中的浮动元素</span>
</div>
</body>
</html>
不定宽居中1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
        .parent {
            position:relative;
            left:50%;
            float: left;
        }
        p{
            float: left;
            position: relative;
            right: 50%;
        }
    </style>
</head>
<body>
<div class="parent">
   <p class="child">demo</p>
</div>
</body>
</html>
使用flex+justify-content来实现居中1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
        .parent {
  display: flex;
   justify-content: center;
        }
       .child{
           width: 200px;
         text-align: center;
           float: left;
       }
    </style>
</head>
<body>
<div class="parent">
   <p class="child">demo</p>
</div>
</body>
</html>
垂直居中
单行内联元素垂直居中
1  | <!DOCTYPE html>  | 
2.多行内联元素垂直居中
1.使用flex布局
利用flex布局实现垂直居中,其中flex-direction为column,column定义主轴方向为纵轴,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
    #box{
        display: flex;
       flex-direction: column;
        justify-content: center;
        height: 100px;
        border: solid;
    }
    </style>
</head>
<body>
<div id = "box">
    <span>单行内联元素</span>
</div>
</body>
</html>
利用表布局的属性1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="./css_center.css">
    <style>
    .parent{
        display: table;
        height: 100px;
        border: solid;
    }
        .child{
            display: table-cell;
            vertical-align: middle;
        }
    </style>
</head>
<body>
<div class="parent">
    <div class="child">
        the more
    </div>
</div>
</body>
</html>