关于 CSS 中的垂直居中

table 方式

.parent {
    display: table-cell;
vertical-align: middle; } .child { margin: auto; }

 

translate + 绝对定位:

.parent {
    position: relative;
}
.child {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

 

绝对定位+四个方向置0

.parent{
    width: 200px;
    height: 200px;
    position: relative;
}
.child{
    width: 100px;
    height: 100px;
    margin: auto;  
    position: absolute;  
    top: 0; 
    left: 0; 
    bottom: 0; 
    right: 0; 
}

 

 ::after + inline-block :

.parent{
    /***/
}
.parent::after{
    content: '';
    width: 0;
    height: 100%;
    display: inline-block;
    vertical-align: middle;
}
.child{
    display: inline-block;
}

 

flex 布局

.parent {
    display: flex;
    align-items: center;
}
.child {
    /**/
}

 

---- 移动端 文字在容器内垂直居中  安卓 line-height 不居中----

传统写法是 令 line-height 与 height 相等即可,但是在安卓浏览器里文字会偏上,无法居中。原因大致是 Android 对文字的渲染高度不同。我们可以采取 flex 的方式来解决

display: flex;
align-items: center;

 或者用2倍字体,然后缩小一半。

待续。。。

posted @ 2019-01-02 18:02  晨の风  阅读(125)  评论(0编辑  收藏  举报