flex布局 控制子元素
<div class="parent">
<div class="child">
垂直居中垂直居中垂直居中垂直居中
</div>
</div>
.parent{
border:1px solid red;
height:600px;
display:flex;
justify-content:center;
}
.child{
border:1px solid yellow;
align-self: center;
}
flex布局 控制父元素
<div class="parent">
<div class="child">
垂直居中垂直居中垂直居中垂直居中
</div>
</div>
.parent{
border:1px solid red;
height:600px;
display:flex;
justify-content:center;
align-items:center;
}
.child{
border:1px solid yellow;
}
绝对定位 margin:auto
<div class="parent">
<div class="child">
垂直居中垂直居中垂直居中垂直居中
</div>
</div>
.parent{
border:1px solid red;
height:600px;
position:relative;
}
.child{
width:300px;
height:100px;
border:1px solid yellow;
position:absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
相对定位 负margin
<div class="parent">
<div class="child">
垂直居中垂直居中垂直居中垂直居中
</div>
</div>
.parent{
border:1px solid red;
height:600px;
width:600px;
position:absolute;
}
.child{
width:300px;
height:100px;
border:1px solid yellow;
position:relative;
top:50%;
left:50%;
margin-top:-50px;
margin-left:-150px;
}
相对定位 transform
<div class="parent">
<div class="child">
垂直居中垂直居中垂直居中垂直居中
</div>
</div>
.parent{
border:1px solid red;
height:600px;
width:600px;
position:absolute;
}
.child{
width:300px;
height:100px;
border:1px solid yellow;
position:relative;
top:50%;
left:50%;
transform:translateX(-50%) translateY(-50%)
}
div 装成table
<div class="parent">
<div class="child">
垂直居中垂直居中垂直居中垂直居中
</div>
</div>
.parent{
border:1px solid red;
display:table;
width:600px;
height:600px;
text-align:center;
}
.child{
border:1px solid yellow;
display:table-cell;
vertical-align:middle;
}
table 布局
<table class="parent">
<tr>
<td class="child">
垂直居中垂直居中垂直居中垂直居中
</td>
</tr>
</table>
.parent{
border:1px solid red;
height:600px;
width:600px;
text-align:center;
}
.child{
border:1px solid yellow;
}