2011-11-24 12 views
101

mam następujący prosty kod:wysokość w procentach Css nie działa

<!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>

Ale div nie zostanie wyświetlona z wysokości ponad 100%. Czemu?

+2

dla elementu mieć względny wysokość musi mieć element nadrzędny o określonym rozmiarze, ponieważ jego własny rozmiar jest względny * do *. Jeśli dodasz 'height: 500px;' (lub cokolwiek) do elementu 'body', powinno to działać. –

+2

Oto proste i jasne wyjaśnienie właściwości 'height' CSS z wartościami procentowymi: http://stackoverflow.com/a/31728799/3597276 –

Odpowiedz

112

Musisz ustawić 100% wzrost wszystkich elementów rodzica, w tym przypadku ciała i html. Ten fiddle pokazuje, że działa.

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

+10

Skrzypek działał, ponieważ ustawia zarówno html, jak i ciało na wysokość 100%. –

+0

a co z szerokością? nie musimy określać szerokości rodzica? @EdBayiates –

+0

@Adamnick, pytanie dotyczyło tylko wysokości. Szerokość nie wpływa na wysokość. –

18

height: 100% prace jeśli dać stały rozmiar do elementu nadrzędnego.

4

dodawania height: 100% do ciała

body{height:100%} 
+1

To nie działało, chyba że dałem również 100% rozmiaru do HTMLa, jak pokazuje @ Jan. –

6

Można to osiągnąć za pomocą pozycjonowania.

Spróbuj

position: absolute; 

aby uzyskać wysokość 100%.

5

Musisz ustawić 100% wysokość na elemencie nadrzędnym.

52
div { 
    height:100vh; 
} 

działa we wszystkich nowoczesnych przeglądarkach IE> = 9, patrz tutaj more info.

2

To jest to, czego potrzebujesz w CSS:

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

korzeń rodzic musiał być w pikselach jeśli chcesz swobodnie pracować z procentów,

<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>