CSS 元素水平,垂直居中方法

一,行内元素:

div{ text-align:center }         /*DIV内的行内元素均会水平居中*/ 

div{ height:30px; line-height:30px }          /*DIV内的行内元素均会垂直居中*/ 

二,块级元素:

div p{margin:0 auto; width:500px}         /*块级元素p一定要设置宽度,才能相当于DIV父容器水平居中*/ 

块级元素垂直居中7种方法

1,table形式居中

<div id="parent">
    <div id="child">Content here</div>
</div>
#parent {
    display: table;
}

#child {
    display: table-cell;
    vertical-align: middle;
}

 display:table-cell 的元素对宽高敏感,对margin值无反应,响应padding属性

2,absolute 加 margin

<div id="parent">
    <div id="child">Content here</div>
</div>
#parent {
    position: relative;
}

#child {
    position: absolute;
    top: 50%;
    left: 50%;
    height: 30%;
    width: 50%;
    margin: -15% 0 0 -25%;
}

 3,absolute 加 拉伸

<div id="parent">
    <div id="child">Content here</div>
</div>
#parent {
    position: relative;
}

#child {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 50%;
    height: 30%;
    margin: auto;
}

4,上下 padding

    <div id="parent">
        <div id="child">Content here</div>
    </div>
    #parent {
        padding: 5% 0;
    }
    #child {
        padding: 10% 0;
    }

5,浮动DIV

<div id="parent">
    <div id="floater"></div>
    <div id="child">Content here</div>
</div>
#parent {
    height: 250px;
}

#floater {
    float: left;
    height: 50%;
    width: 100%;
    margin-bottom: -50px;
}

#child {
    clear: both;
    height: 100px;
}

6,absolute 加 transform(PC有兼容问题)

    <div id="parent">
        <div id="child">Content here</div>
    </div>
#parent {
    position: relative;
}

#child {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 0;
    text-align: center;
    transform: translateY(-50%);
}

 

CSS 元素水平,垂直居中方法

7,flex 弹性布局居中(PC有兼容问题)

    <div id="parent">
        <div id="child">Content here</div>
    </div>
#parent {
    display: flex;
    align-items: center;
    /*垂直居中*/
    justify-content: center;
    /*水平居中*/

}

 

CSS 元素水平,垂直居中方法