CSS水平垂直居中实现总结

2017-08-30  本文已影响0人  xiaoguo16

在用CSS写布局的时候,经常要用到水平居中与垂直居中。首先看下面这个div:

<body>
<div>
    <span>这是一个例子</span>
</div>
</body>

在body中定义了一个div,div中有一个内联元素span。下面分情况讨论如何让div和span在父容器中水平与垂直居中。

水平居中

div{
        width:200px;
        margin:0 auto;
    }
    div{
        width:200px;
        margin:0 auto;
        text-align: center;
    }

在上述div中的样式中加入text-align:center的属性,则div中的内联元素就会居中显示。

垂直居中

    div{
        width:200px;
        height: 500px;
        top:50%;
        left:50%;
        position:absolute;
        margin-top:-250px;
        margin-left:-100px;
    }

这样就可以实现div的垂直居中,但是这种方法的前提是需要知道div的宽高,如果不知道的话该怎么办呢?
那就可以利用CSS3中的属性transform

    div{
        top:50%;
        left:50%;
        position:absolute;
        transform: translate(-50%,-50%);
    }

该属性可以相对于自身元素大小的50%进行移动,不用提前指定元素大小,所以相比来说这种方式比上面的margin的方式适应性更强。

    span{
        line-height: 300px;
    }

这样该元素就会在这个300px的高度中居中显示。

特殊情况:flex布局

对于父容器为flex布局的块状元素的居中,可以对齐父容器设置:

align-items: center;        /* 垂直居中 */
 justify-content: center;   /* 水平居中 */
上一篇 下一篇

猜你喜欢

热点阅读