2009-12-27 62 views
19

當我使用HTML而沒有DOCTYPE時,我的HTML頁面Height=100%正在工作。使用<!DOCTYPE>時,「Height = 100%」在html中不起作用?

但是當我使用DOCTYPE,高度不能正常工作......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
<title>New Page 1</title> 
</head> 

<body> 

<table cellpadding="0" cellspacing="0" width="11" height ="100%"> 
    <tr> 
     <td height="100%" bgcolor="#008000">&nbsp;</td> 
    </tr> 
</table> 

</body> 

如何解決這個問題呢?

+0

這裏的DOCTYPE問題的一個簡單而明確的解釋: http://stackoverflow.com/a/32215263/3597276 – 2015-08-25 23:09:20

回答

3

當你說'身高= 100%'時,你必須考慮「100%是什麼?」。它是該表格元素的父體,它是主體。但身體有多高?

做你想做什麼,在CSS補充一點: HTML,身體{身高:100%}

34

quirks mode添加DOCTYPE您切換到標準模式。在標準模式下,htmlbody元素不會默認爲視口(瀏覽器窗口)大小的100%;相反,他們只是需要遏制自己的孩子。 100%的高度意味着100%的包含元素,但這只是包含表格內容所需的大小。怪異模式是模擬舊版瀏覽器的行爲,其中htmlbody元素填充了視口。

爲了解決這個問題,你只需要添加到您的文檔:

<style> 
    html, body { height: 100% } 
</style> 
+0

我試着像上面,但寬度(100%)是工作,但高度不工作 – Alex 2009-12-28 09:01:30

+0

您可以編輯你的帖子中包含你正在嘗試的確切代碼,以及哪個瀏覽器失敗? – 2009-12-28 12:56:47

+0

我在Firefox中測試過,結果是好的。謝謝@布里斯坎貝爾 – 2013-05-12 09:28:35

0

就像大家說的解決方案的主要組成部分是把

html, body{'height=100%'}

但它也將每一個祖先的身高設定爲100%非常重要。例如,如果你的代碼如下

<body> 
    <div id="firstdiv"> 
     <div id="scnddiv"> 
       lets say this is the div you want to make 100% 
     </div> 
    </div> 
</body> 

如果#scnddiv是你想100%的股利,不僅你必須做出html和身體100%,但也#firstdiv。所以它會看起來像這樣

html, body, #firstdiv {height:100%} 

然後你可以使該div中的任何東西都是100%。

我希望這會有所幫助。

+0

不知道爲什麼這是downvoted? – Brian 2018-01-11 14:15:23