2011-11-24 70 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>