此程式碼片段嘗試用綠色填滿整個頁面div:
<!DOCTYPE HTML> <html> <body>
但是,它並沒有按預期工作。 div 仍然不可見。如果我們刪除 DOCTYPE 聲明 (),div 會突然擴展以填入整個頁面。這就提出了兩個問題:
如何在不刪除 DOCTYPE 聲明的情況下讓 div 填入頁面? DOCTYPE,只需將根元素(html)的高度設定為100%:
html { height: 100%; }
當存在 DOCTYPE 時,瀏覽器會依照標準呈現頁面模式。在標準模式下,如果父元素沒有明確的高度,則子元素的百分比高度將被視為 height: auto。這就是為什麼 div 在標準模式下無法填充頁面的原因。
但是,當 DOCTYPE 不存在時,瀏覽器會切換到怪異模式。在怪異模式下,子元素的百分比高度是相對於視口測量的。這意味著上例中的 div 將以怪異模式填滿整個頁面,因為其高度設定為視窗高度的 100%。
始終包含 DOCTYPE 聲明以確保頁面以標準模式呈現非常重要。 Quirks 模式是不可靠且不可預測的,應該不惜一切代價避免它。首選的 DOCTYPE 聲明很簡單:
<!DOCTYPE html>
以上是為什麼 100% 高度的 div 僅在刪除 DOCTYPE 後才填入頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!