首頁 > web前端 > css教學 > 為什麼 100% 高度的 div 僅在刪除 DOCTYPE 後才填入頁面?

為什麼 100% 高度的 div 僅在刪除 DOCTYPE 後才填入頁面?

Mary-Kate Olsen
發布: 2024-12-27 13:37:11
原創
448 人瀏覽過

Why does a 100% height div only fill the page when the DOCTYPE is removed?

為什麼刪除 DOCTYPE 後高 100% 會運作?

此程式碼片段嘗試用綠色填滿整個頁面div:

<!DOCTYPE HTML>
<html>
<body>
登入後複製

但是,它並沒有按預期工作。 div 仍然不可見。如果我們刪除 DOCTYPE 聲明 (),div 會突然擴展以填入整個頁面。這就提出了兩個問題:

如何在不刪除 DOCTYPE 聲明的情況下讓 div 填滿頁面?

如何在不刪除 DOCTYPE 聲明的情況下讓 div 填入頁面? DOCTYPE,只需將根元素(html)的高度設定為100%:

html { height: 100%; }
登入後複製

為什麼刪除 DOCTYPE 聲明可以使其工作?

當存在 DOCTYPE 時,瀏覽器會依照標準呈現頁面模式。在標準模式下,如果父元素沒有明確的高度,則子元素的百分比高度將被視為 height: auto。這就是為什麼 div 在標準模式下無法填充頁面的原因。

但是,當 DOCTYPE 不存在時,瀏覽器會切換到怪異模式。在怪異模式下,子元素的百分比高度是相對於視口測量的。這意味著上例中的 div 將以怪異模式填滿整個頁面,因為其高度設定為視窗高度的 100%。

結論

始終包含 DOCTYPE 聲明以確保頁面以標準模式呈現非常重要。 Quirks 模式是不可靠且不可預測的,應該不惜一切代價避免它。首選的 DOCTYPE 聲明很簡單:

<!DOCTYPE html>
登入後複製

以上是為什麼 100% 高度的 div 僅在刪除 DOCTYPE 後才填入頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板