1. 程式人生 > 其它 >利用vertical-align:middle垂直居中

利用vertical-align:middle垂直居中

<!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;
        }
    </style>
</head>
<body>
<div class="wrapper">
    <div class="box"></div>
</div>
</body>
</html>

效果如圖所示

以前總是以為vertical-align與text-align是同樣的道理,一個是垂直居中,一個是水平居中,結果在這裡一點效果也沒有。事實上vertical-align與text-align完全不一樣,vertical-align不能這樣用。

vertical-align 屬性設定元素的垂直對齊方式。該屬性定義行內元素的基線相對於該元素所在行的基線的垂直對齊。允許指定負長度值和百分比值。這會使元素降低而不是升高。在表單元格中,這個屬性會設定單元格框中的單元格內容的對齊方式。

第一種用法,先看後面一句“在表單元格中,這個屬性會設定單元格框中的單元格內容的對齊方式。”這很容易理解,如果給一個表格的td加一個vertical-align:middle的樣式,表格裡面的內容會垂直居中,同樣的如果給一個vertical-align:bottom就會底部對齊,如果給一個vertical-align:top就會頂部對齊。

第二種用法,該屬性定義行內元素的基線相對於該元素所在行的基線的垂直對齊。假設有兩個行內元素a和b,a和b都是div,當a加了一個vertical-align:middle樣式之後,b的底部(基線)就會對齊a的中間位置,如下圖:

如果a和b都加了一個vertical-align:middle樣式,那麼就互相對齊了對方的中間位置,也就是它們在垂直方向上的中線對齊了,如下圖:

現在我要讓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>

下面我們來看一張圖來更好理解垂直對齊主要屬性值的表現形式

轉自:https://www.jianshu.com/p/dea069fecb62

作者:龍飛 出處:http://www.cnblogs.com/longfei825/

-------------------------------------------

個性簽名:獨學而無友,則孤陋而寡聞。做一個靈魂有趣的人!

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!