2011-11-24 106 views
101

我有以下簡單的代碼:的CSS高度不工作

<!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" xml:lang="en"> 
 

 
<head> 
 
    <title>Live Feed</title> 
 

 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
 

 
    <style> 
 
    body { 
 
     margin: 0px; 
 
     padding: 0px; 
 
    } 
 
    </style> 
 
</head> 
 

 
<body> 
 
    <div style="background-color: #eeaabb; width: 250px; height: 100%; border-right: solid 1px #e1e1e1;"> 
 
    I should be tall 
 
    </div> 
 
</body> 
 

 
</html>

但格沒有得到與顯示高度爲100%。爲什麼?

+2

對於有一個相對的元素高度,它必須有一個指定大小的父元素,因爲它自己的大小是相對*到*。如果你添加'height:500px;'(或其他)到'body'元素,它應該可以工作。 –

+2

下面是一個簡單和清晰的解釋CSS高度屬性與百分比值:http://stackoverflow.com/a/31728799/3597276 –

回答

112

您需要在所有父元素上設置100%的高度,在這種情況下,您的body和html。這fiddle顯示它的工作。

html, body { height: 100%; width: 100%; margin: 0; } 
 
div { height: 100%; width: 100%; background: #F52887; }
<html><body><div></div></body></html>

+10

小提琴工作,因爲它將HTML和身體都設置爲100%的高度。 –

+0

和寬度呢?我們不必指定父級的寬度? @EdBayiates –

+0

@Adamnick,問題只是關於身高。寬度不影響高度。 –

18

height: 100%作品,如果你給一個固定大小的父元素。

4

添加高度:100%的身體

body{height:100%} 
+1

這不起作用,除非我還將@Jan顯示的100%大小賦予HTML。 –

6

可以實現通過使用定位。

嘗試

position: absolute; 

獲得100%的高度。

5

您需要在父元素上設置100%的高度。

52
div { 
    height:100vh; 
} 

適用於所有現代瀏覽器和IE> = 9,在這裏看到more info

2

這是你在CSS需要什麼:

html, body 
{ 
height: 100%; 
width: 100%; 
margin: 0; 
} 
3

根父母必須以像素爲單位,如果你想用百分比自由地工作,

<body style="margin: 0px; width: 1886px; height: 939px;"> 
<div id="containerA" class="containerA" style="height:65%;width:100%;"> 
    <div id="containerAinnerDiv" style="position: relative; background-color: aqua;width:70%;height: 80%;left:15%;top:10%;"> 
     <div style="height: 100%;width: 50%;float: left;"></div> 
     <div style="height: 100%;width: 28%;float:left"> 
      <img src="img/justimage.png" style="max-width:100%;max-height:100%;"> 
     </div> 
     <div style="height: 100%;width: 22%;float: left;"></div> 
    </div> 
</div> 
</body>