高度百分比时的文字垂直居中

Posted 雨晴闹闹

tags:

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

常用css的开发人员都知道让单行文字水平居中用text-align:center垂直方向居中有一个小技巧是让line-height=height,一般用到这个的时候我们的高度都是固定的px,但今天我设置高度为百分比时,也想让文字垂直居中,于是有了下面这段代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        html,body{
            margin: 0;
            height: 100%;
        }
        #container{
            width: 100%;
            height: 100%;
            background: #888888;
        }
        #content{
            width: 50%;
            height: 50%;

            font-size: 100px;
            text-align: center;
            background: #0000ff;
        }

    </style>
</head>
<body>
<div id="container">
    <div id="content">
        HELLO WORLD
    </div>
</div>
</body>
</html>

此时我没有设置任何让它垂直居中的样式,运行如下

 

然后利用line-height:50%,看看发生什么

 

并不是我截图截丢了一块,发现字体向上移了一部分,原因是line-height的百分比是相对于font-size,所以你如果使用line-height居中的话,就必须使用绝对的px

方法一:

增加一个父元素,给父元素设置display:table,给需要居中的元素设置vertical-align:middle;display:table-cell;

方法二:

给需要居中的元素加以下代码样式和

display:flex;

justify-content:center;

align-items:center;

两种方法在不同场景都有一定程度的问题,需根据实际情况确定

 

小技巧tips:

设置高度宽度百分比时,百分比时相对于父元素来确定,承接父元素的百分比,相对于浏览器屏幕大小时,必须给html,body设置显性百分比100%

以上是关于高度百分比时的文字垂直居中的主要内容,如果未能解决你的问题,请参考以下文章

前端面试 CSS— 实现布局:div垂直居中,左右10px,高度始终为宽度一半

固定容器高度的多行文字垂直居中

如何设置图标的百分比高度,并将其垂直居中,同时左浮动?

body高度100%怎么让div在body里面垂直居中

高度固定,行数不固定的文字垂直居中问题

转 图片多行文字的水平垂直居中