首页 > web前端 > css教程 > 当父元素有'min-height”/'max-height”但没有显式高度时,为什么'height: 100%”在子元素上失败?

当父元素有'min-height”/'max-height”但没有显式高度时,为什么'height: 100%”在子元素上失败?

Patricia Arquette
发布: 2024-12-26 20:36:10
原创
227 人浏览过

Why Does `height: 100%` Fail on a Child Element When Its Parent Has `min-height`/`max-height` but No Explicit Height?

为什么当父元素有最小高度/最大高度值但没有指定高度值时,子元素上的 Height: 100% 无法应用?

考虑以下 HTML 和 CSS setup:

<div class="container">
  <div class="child"></div>
</div>
登录后复制
.container {
  background-color: red;
  width: 500px;
  min-height: 300px;
}

.child {
  background-color: blue;
  width: 500px;
  height: 100%;
}
登录后复制

在这种情况下,容器元素按照预期以 300px 的高度渲染,但尽管声明了 height: 100%,但子元素仍然没有任何高度。

但是,给容器元素添加一个小的高度值(例如 1px)会导致子元素突然充满整个容器,高度为300px:

.container {
  background-color: red;
  width: 500px;
  min-height: 300px;
  height: 1px;
}

.child {
  background-color: blue;
  width: 500px;
  height: 100%;
}
登录后复制

此行为源于 CSS 规范本身。当未明确定义元素的高度时,其子元素的百分比高度将失败。根据规范:

指定百分比高度。百分比是根据生成的盒子的包含块的高度计算的。如果未明确指定包含块的高度(即,它取决于内容高度),并且该元素不是绝对定位的,则该值计算为“auto”。

在初始情况下,由于容器元素的高度未显式设置,子元素的 height: 100% 变为“auto”。这意味着它只会占用其内容所需的空间,从而导致不可见的高度。

向容器元素添加高度值(甚至小至 1px)显式定义其高度,从而允许子元素element's height: 100% 来计算并应用正确的高度。

因此,看似意外的行为源于这样一个事实:父元素的高度需要为其子元素显式定义正确计算他们的身高百分比。

以上是当父元素有'min-height”/'max-height”但没有显式高度时,为什么'height: 100%”在子元素上失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板