<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 2249瀏覽 加載中

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

    一、采用line-height屬性

    這種方式很常見,當 line-height 和 height 兩個屬性設置相同的高度時,該元素內部的文字將會居中。

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

    優(yōu)缺點:

    [優(yōu)點]設置簡單;

    [缺點]只能對一行文字進行垂直居中;

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

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

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

    優(yōu)缺點:

    [優(yōu)點]設置多行文字居中;

    [缺點]會被其它樣式破壞例如:float、position:absolute;

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


    通過絕對定位可以給元素設置距父元素上部top:50%,但是還沒結束該元素還需要做一定的偏移才行,偏移量為該元素的一半高度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)缺點:

    [優(yōu)點]居中元素對其它同級元素沒有影響;

    [缺點]子元素的高度需要固定;

    四、采用 padding-top 和 padding-bottom

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

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

    優(yōu)缺點:

    [優(yōu)點]父級元素高度可變;

    [缺點]父級元素高度可變;


    標簽: 前端
    最后修改:2025-05-30 00:28:46

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

    主站蜘蛛池模板: 游戏| 景宁| 屯昌县| 晋州市| 吉安县| 应城市| 土默特右旗| 彰化市| 南川市| 迁安市| 永和县| 嘉荫县| 双鸭山市| 东台市| 彰武县| 玉山县| 诸暨市| 司法| 桑植县| 甘孜| 金昌市| 苏尼特左旗| 阜新| 舟曲县| 卢氏县| 永顺县| 新宁县| 汶上县| 越西县| 汝南县| 库尔勒市| 修武县| 高阳县| 临沭县| 鄂尔多斯市| 司法| 新乡县| 米泉市| 额尔古纳市| 黑山县| 探索|