<button id="g80sy"></button>
  • <abbr id="g80sy"></abbr>
  • <button id="g80sy"></button>
    <rt id="g80sy"><delect id="g80sy"></delect></rt>
  • 讓元素在css里怎么垂直居中?

    程序猿 2021-03-10 21:37:50 2128瀏覽 加載中

    在 CSS 布局中,我們經(jīng)常會(huì)遇到一個(gè)問(wèn)題,讓某個(gè) DOM 垂直居中在它的父級(jí)元素中。這個(gè)問(wèn)題需要分一些情況,在不同的情況下采用的方案不一樣。

    一、采用line-height屬性

    這種方式很常見(jiàn),當(dāng) line-height 和 height 兩個(gè)屬性設(shè)置相同的高度時(shí),該元素內(nèi)部的文字將會(huì)居中。

    #parent {
        height: 100px;
        line-height: 100px;
        border: solid 1px #333;
    }

    優(yōu)缺點(diǎn):

    [優(yōu)點(diǎn)]設(shè)置簡(jiǎn)單;

    [缺點(diǎn)]只能對(duì)一行文字進(jìn)行垂直居中;

    二、采用 display:table-cell 和 vertical-align:middle

    這種現(xiàn)實(shí)方式可以讓標(biāo)簽元素以表格單元格的形式呈現(xiàn),標(biāo)簽就像 table 中的 td,這樣一來(lái)我們就可以通過(guò)vertical-align:middle這個(gè)樣式使得其內(nèi)部的元素居中顯示。

    #parent {
        height: 100px;
        display: table-cell;
        vertical-align: middle;
        border: solid 1px #333;
    }

    優(yōu)缺點(diǎn):

    [優(yōu)點(diǎn)]設(shè)置多行文字居中;

    [缺點(diǎn)]會(huì)被其它樣式破壞例如:float、position:absolute;

    三、采用 position: absolute 和 margin-top。


    通過(guò)絕對(duì)定位可以給元素設(shè)置距父元素上部top:50%,但是還沒(méi)結(jié)束該元素還需要做一定的偏移才行,偏移量為該元素的一半高度margint-top:-height/2。

    #parent {
        height: 100px;
        position: relative;
        border: solid 1px #333;
    }
    
    #child {
        height: 20px;
        margin-top: -10px;
        position: absolute;
        top: 50%;
    }

    優(yōu)缺點(diǎn):

    [優(yōu)點(diǎn)]居中元素對(duì)其它同級(jí)元素沒(méi)有影響;

    [缺點(diǎn)]子元素的高度需要固定;

    四、采用 padding-top 和 padding-bottom

    這種方式只需要將頂部和底部的padding設(shè)置同樣高度就行。

    #parent {
        padding-top: 20px;
        padding-bottom: 20px;
        border: solid 1px #333;
    }

    優(yōu)缺點(diǎn):

    [優(yōu)點(diǎn)]父級(jí)元素高度可變;

    [缺點(diǎn)]父級(jí)元素高度可變;


    標(biāo)簽: 前端
    最后修改:2025-03-23 19:22:50

    非特殊說(shuō)明,本博所有文章均為博主原創(chuàng)。

    主站蜘蛛池模板: 博白县| 宁乡县| 颍上县| 日照市| 鹤山市| 阳山县| 九龙坡区| 九江市| 交口县| 沅陵县| 临安市| 长丰县| 周宁县| 中超| 赤壁市| 海安县| 金堂县| 沭阳县| 绥滨县| 田阳县| 鲜城| 辉南县| 临江市| 兴安盟| 怀远县| 忻州市| 尼玛县| 佛冈县| 满城县| 屯昌县| 南开区| 莫力| 常山县| 佛冈县| 邢台县| 宁城县| 靖安县| 运城市| 镇沅| 沙坪坝区| 遂溪县|