首頁 > web前端 > css教學 > 當父元素有「min-height」/「max-height」但沒有明確高度時,為什麼「height: 100%」在子元素上失敗?

當父元素有「min-height」/「max-height」但沒有明確高度時,為什麼「height: 100%」在子元素上失敗?

Patricia Arquette
發布: 2024-12-26 20:36:10
原創
226 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板