布局-垂直居中

Posted 姜小七的填坑之旅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了布局-垂直居中相关的知识,希望对你有一定的参考价值。

结构:

<div class="parent">
        <div class="child">DEMO</div>
    </div>

样式:

1.方案一:vertical-align +  table-cell (若child为浮动的,也是可以的)

.parent {
        height: 200px;
        background-color: grey;
        display:table-cell;/*父容器变成了一个单元格*/
        vertical-align: middle;/*可作用在inline元素上,inline-block元素上,以及table-cell元素上*/
    }
    .child  {
        background-color: skyblue;
    }
    /*table-cell兼容到IE8,若要兼容IE6,7,把结构换成表结构,即兼容性比较好*/

2.方案二:absolute+transform

.parent {
        position: relative;
        background-color: grey;
        height: 200px;
        width: 40px;
    }
    .child  {
        background-color: skyblue;
        
        position: absolute;
        top: 50%;/*相对与容器的百分比*/
        transform: translateY(-50%);/*相对与自身的百分比*/
    }
    /*优点:子元素不会影响其他元素
    缺点:transform是css3新增的元素*/

3.方案三: flex +  align-items(默认值:stretch,垂直方向对齐)(align-items:stretch/flex-start/center/flex-end/baseline)

 1 .parent {
 2         display: flex;
 3         align-items: center;
 4 
 5         background-color: grey;
 6         height: 200px;
 7         width: 40px;
 8     }
 9     .child  {
10         background-color: skyblue;
11     }
12     /*优点:只给parent设置样式
13     缺点:只有高版本才兼容*/

 

以上是关于布局-垂直居中的主要内容,如果未能解决你的问题,请参考以下文章

关于flex布局垂直居中

android,线性布局1,里面嵌套线性布局2(垂直排列),想让2在1里是垂直居中的,怎么搞?

React Native 中的 Flex Box 的用法(水平布局垂直布局水平居中垂直居中居中布局)

前端面试题前端布局问题

如何在垂直线性布局中垂直居中视图?

css常用代码片段 (更新中)