为什么 height=100% 不起作用? [英] Why height=100% doesn't work?
问题描述
我使用了占用所有可用空间的第三方组件,即 width=100%
和 height=100%
.我无法控制它.
我正在尝试使其适合以下布局,但它的 height=100%
不起作用(我希望第三方组件占据所有绿色空间).>
为什么?你会如何解决这个问题?
.container {显示:弹性;弹性方向:列;宽度:200px;高度:100px;}.header {显示:弹性;背景颜色:rgba(255, 0, 0, 0.5);}.内容 {弹性增长:1;背景颜色:rgba(0, 255, 0, 0.5);}.第三方组件{高度:100%;宽度:100%;背景颜色:rgba(0, 0, 255, 0.5);}
<div class="header">Header</div><div class="内容"><div class="第三方组件">第三方组件
一般来说,对于使用 height
上的百分比的元素来获取其父级的高度,父级需要一个 auto
以外的高度或绝对定位, 否则 height
将被计算为 auto
.
基于这 2 个选项,正如您在评论中提到的,您自己的标题在高度上是动态的,您将获得绝对定位.
向content
添加absolute的问题,它会被从flow中取出并停止作为一个正常的flowed flex item,好消息,可以添加一个wrapper set为absolute.
堆栈片段
.container {显示:弹性;弹性方向:列;宽度:200px;高度:100px;}.header {显示:弹性;背景颜色:rgba(255, 0, 0, 0.5);}.内容 {位置:相对;/* 添加 */弹性增长:1;背景颜色:rgba(0, 255, 0, 0.5);}.包装{位置:绝对;/* 添加 */左:0;/* 添加 */顶部:0;/* 添加 */右:0;/* 添加 */底部:0;/* 添加 */}.第三方组件{高度:100%;宽度:100%;背景颜色:rgba(0, 0, 255, 0.5);}
<div class="header">Header</div><div class="内容"><div class="wrapper"><div class="第三方组件">第三方组件