vertical-align 屬性設置元素的垂直對齊方式。該屬性定義行內(inline
或 inline-block
等)元素的基線相對于該元素所在行的基線的垂直對齊。允許指定負長度值和百分比值。這會使元素降低而不是升高。在表單元格中,這個屬性會設置單元格框中的單元格內容的對齊方式。
第一種用法,先看后面一句“在表單元格中,這個屬性會設置單元格框中的單元格內容的對齊方式?!边@很容易理解,如果給一個表格的td加一個vertical-align:middle的樣式,表格里面的內容會垂直居中,同樣的如果給一個vertical-align:bottom就會底部對齊,如果給一個vertical-align:top就會頂部對齊。
第二種用法,該屬性定義行內元素的基線相對于該元素所在行的基線的垂直對齊。假設有兩個行內元素a和b,a和b都是div,當a加了一個vertical-align:middle樣式之后,b的底部(基線)就會對齊a的中間位置,如下圖:
如圖所示
現在我要讓class="box"的div在class="wrapper"的div里面垂直居中,我可以在class="wrapper"的div里面加一個div空標簽,把它的高度設為100%,寬度設置為0,再給它一個vertical-align:middle樣式,同樣的給class="box"的div一個vertical-align:middle樣式,那么box就可以在div里面垂直居中了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSS垂直居中</title>
<style>
.wrapper{
width: 500px;
height: 500px;
background-color: pink;
text-align: center;
}
.box{
width: 100px;
height: 100px;
background-color: deepskyblue;
display: inline-block;
vertical-align: middle;
margin: 0 auto;
}
.help{
width: 0;
height: 100%;
display: inline-block;
vertical-align: middle;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="box"></div>
<div class="help"></div>
</div>
</body>
</html>
居中了
vertica-align和line-height的關系
- vertical-align的百分比值不是相對于字體大小或者其他什么屬性計算的,而是相對于line-height計算的