web前端開發常常用到的就是使元素在容器裏面進行水平垂直居中。相對於垂直居中來講,水平居中或許比較容易。若是是塊級元素直接設置其margin:auto便可完成水平居中;若是是內聯元素,能夠經過display:inline-block(display:block)變成塊級元素再進行設置margin值或者經過text-align:center便可使水平居中。如果垂直居中,若是是內聯元素,能夠設置vertical-align:middle能夠使其垂直居中(前提是父容器裏面只有一個子元素才生效)。因此下面在平時總結了如下幾種垂直居中的方法。css
// html結構
<div class="parent">
demo
</div>
// css樣式使文本元素垂直水平居中
div.parent{
width:100px;
height:100px;
vertical-align:middle;
line-height:100px;
}
複製代碼
// html結構
<div class="parent">
<div class="child">demo</div>
</div>
// css樣式
div.parent{
position:relative;
width:200px;
height:200px;
}
div.child{
position:absolute;
width:100px;
height:100px;
margin:auto;
left:0;
top:0;
bottom:0;
right:0;
}
複製代碼
// html結構
<div class="parent">
<div class="child">demo</div>
</div>
// css樣式
div.parent{
display:table;
}
div.child{
display:table-cell;
text-aglin:center;
vertical-align:middle;
}
複製代碼
// html結構
<div class="parent">
<div class="child">demo</div>
</div>
// css樣式
div.parent{
width:100%;
height:200px;
display:flex;
justify-content:center;
align-items:center;
}
// 或者直接設置子元素
div.parent{
width:100%;
height:200px;
display:flex;
justify-content:center;
}
div.child{
align-self:center;
}
複製代碼
// html結構
<div class="parent">
<div class="child">demo</div>
</div>
// css樣式
div.parent{
width:100%;
height:200px;
display:box;
box-align:center;
box-pack:center;
}
複製代碼
// html結構
<div class="parent">
<div class="child">demo</div>
</div>
// css樣式
div.parent{
width:100px;
height:100px;
position:relative;
}
div.child{
position:absolute;
top:50%;
left:50%;
right:auto;
bottom:auto;
width:50px;
height:50px;
margin-left:-25px;
margin-top:-25px;
}
複製代碼
// html結構
<div class="parent">
<div class="child">demo</div>
</div>
// css樣式
div.parent{
width:100px;
height:100px;
position:relative;
}
div.child{
position:absolute;
top:50%;
left:50%;
right:auto;
bottom:auto;
width:50px;
height:50px;
transform:translate(-50%,-50%);
}
複製代碼
// html結構
<div class="content"></div>
<div class="next">demo</div>
// css樣式
div.content{
height:50%;
float:left;
margin-bottom:-120px;
}
div.next{
clear:both;
height:240px;
position:relative;
}
複製代碼