首页 前端知识 CSS 弹性布局(flex)的height计算

CSS 弹性布局(flex)的height计算

2024-04-13 09:04:58 前端知识 前端哥 160 668 我要收藏

疑惑现象:

弹性布局父元素的height=所有子元素的元素高度,而子元素又能继承父元素高度(height:100%)。

可能过程:

先使用子元素总高度撑起父元素高度,子元素再继承父元素高度。

测试代码:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body style="border: 2px solid black;box-sizing: border-box;">
<div style="border:2px solid red;display: flex;">
    <div style="height: auto;">
        <div style="height: 100%;border: 5px solid yellow;box-sizing: border-box;">
            <h1>1</h1>
            <input>
            <input>
            <input>
            <input>
        </div>
        <div style="height: 100%;border: 5px solid green;box-sizing: border-box;">
            <h1>2</h1>
            <input>
            <input>
            <input>
            <input>
        </div>
    </div>
</div>
</body>
</html>

在这里插入图片描述

博文引用-启发:

由多次测试我猜测是首次渲染之后,父元素未设置高度,子元素即使设置height:100%;
获取不到父元素高度,高度由子元素的内容决定。
而dispaly:flex;弹性布局会动态计算元素的高度,在确定最大的元素高度之后,相当于父元素高度确定,再由于height: auto;的存在由浏览器计算出其他子元素的高度,最终使得各个子元素高度统一。

其他:

有明白具体过程的嘛?欢迎留言指教。

相关参考:
CSS height 及 flex布局一则

转载请注明出处或者链接地址:https://www.qianduange.cn//article/4822.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!