利用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是同樣的道理,一個是垂直居中,一個是水平居中,結(jié)果在這里一點(diǎn)效果也沒有。事實(shí)上vertical-align與text-align完全不一樣,vertical-align不能這樣用。

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

第一種用法,先看后面一句“在表單元格中,這個屬性會設(shè)置單元格框中的單元格內(nèi)容的對齊方式?!边@很容易理解,如果給一個表格的td加一個vertical-align:middle的樣式,表格里面的內(nèi)容會垂直居中,同樣的如果給一個vertical-align:bottom就會底部對齊,如果給一個vertical-align:top就會頂部對齊。

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

圖示

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

圖示

現(xiàn)在我要讓class="box"的div在class="wrapper"的div里面垂直居中,我可以在class="wrapper"的div里面加一個div空標(biāo)簽,把它的高度設(shè)為100%,寬度設(shè)置為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>
圖示

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

垂直對齊主要屬性值的表現(xiàn)形式.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,091評論 1 92
  • 收聽音頻,戳鏈接,舊號itclan已暫停使用,歡迎關(guān)注微信itclanCoder公眾號可收聽更多音頻 前言 關(guān)于網(wǎng)...
    itclanCoder閱讀 8,346評論 3 30
  • 參考文章:深入了解CSS的line-height屬性Vertical-Align: 你需要知道的所有事【譯】Ver...
    若邪Y閱讀 3,559評論 1 6
  • 本文主要是起筆記的作用,內(nèi)容來自慕課網(wǎng). 認(rèn)識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,748評論 0 30
  • 一 外部式css樣式 (也可稱為外聯(lián)式)就是把css代碼寫一個單獨(dú)的外部文件中,這個css樣式文件以“.css...
    KunMitnic閱讀 1,110評論 0 1

友情鏈接更多精彩內(nèi)容