父元素高度已知,子元素高度未知的情况下,无法通过如下position设置垂直居中,为什么?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        .parent{border: 1px solid red;width: 500px;height: 400px;position: relative;}
        .content{position: absolute;top:50%;left:50%;}
        .text{border:1px solid green;position:relative;top: -50%;left:-50%;}
    </style>
</head>
<body>
<div class="parent">
    <div class="content">
        <div class="text">发链接都是金粉世法国代电饭锅<br>家发的设计<br>费放松放松<br>sfljsljfs</div>
    </div>
</div>
</body>
</html>

效果图
图片描述

阅读 3.1k
3 个回答

不知道如下是不是您想要的效果

    .parent{border: 1px solid red;width: 500px;height: 400px;position: relative;}
    .content{position: absolute;top:50%;left:50%;transform: translate(-50%,-50%);}
    .text{border:1px solid green;}

我理解是 .content高度是被撑起来的,无法自己引用自己,所以用百分比自身高度得到的值就是0.
你可以用.text{transform:translate(-50%,-50%);}来居中.

top:50%是上起始位置正好正中间开始,而内容div有一定高度,所以要正好垂直居中的话,top设置成50%减去内容高度的1/2

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题