absolute + margin-top
在子元素高度不变的情况下,可采用绝对定位和margin-top
来实现1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19.demo-wapper-1 {
border: 1px solid #ccc;
height: 300px;
position: relative;
}
.demo-content-1 {
background-color: gray;
height: 100px;
width: 200px;
position: absolute;
top: 50%;
margin-top: -50px;
// 同时保持水平居中
left: 50%;
margin-left: -100px;
}
<div class="demo-wapper-1">
<div class="demo-content-1"></div>
</div>
line-height
当子元素为单行文本时,可以设置父元素的行高来保持垂直居中1
2
3
4
5
6
7
8
9
10
11
12
13
14.demo-wapper-2 {
border: 1px solid #ccc;
height: 200px;
line-height: 200px;
text-align: center
}
.demo-content-2 {
background-color: gray;
display: inline
}
<div class="demo-wapper-2">
<div class="demo-content-2"></div>
</div>
vertical-align
方法一
使用table
和td
来实现
1 | .demo-table { |
I’m vertically centered multiple lines of text in a real table cell. I’m vertically centered multiple lines of text in a real table cell. I’m vertically centered multiple lines of text in a real table cell. |
方法二
模仿上面的形式,手动使用display:table
和table-cell
来实现
1 | .demo-wapper-3 { |
12345
absolute + tranfrom
当我们不知道一个快块元素的高度时,可以使用tranfrom
1 | .demo-wapper-4 { |
flex
在可以使用flex的时候,flex可能是比较好的选择
1 | .demo-wapper-5 { |