理解height 百分比 height:100%


當你讓一個元素的高度設定為百分比高度時,是相對於父元素的高度根據百分比來計算高度。當沒有給父元素設置高度(height)時或設置的高度值百分比不生效時,瀏覽器會根據其子元素來確定父元素的高度,所以當無法根據獲取父元素的高度,也就無法計算自己高度。 換句話說,父元素的高度只是一個缺省值:height: auto;。當你要求瀏覽器根據這樣一個缺省值來計算百分比高度時,只能得到undefined的結果,也就是一個null值,瀏覽器不會對這個值有任何的反應。


html 的父元素可以理解成window,瀏覽器會將html填充填充完一個瀏覽器窗口。 設置html的height為具體的像素值,當其值大於瀏覽器窗口時,瀏覽器出現滾動條,當其值小於瀏覽器窗口時,同樣會將html填充完整個瀏覽器窗口(可以設置背景測試)。設置html的height為百分比時,當其值大於100%出現滾動條,當小於100%時同樣會將html填充完整個瀏覽器窗口(可以設置背景測試)。 但是子html的子元素的高度設置成百分比時,會按照html設置的高度值計算比例。


對於body的設置的高度小於瀏覽器窗口時,同樣會填充滿整個瀏覽器窗口(可以設置背景測試),但是其子元素的高度設置成百分比時,會按照body設置的高度值來計算比例。

 

<!doctype html>
<html  style="height:50%; background-color:#9F0">
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>
<body   style="height:100%; ">
 <div style="height:100%; background-color:#FFF" >
 html的高度設置成小於瀏覽器窗口高度,但是仍然填充滿整個瀏覽器窗口,但是其子元素的高度設置成百分比時,會按照父元素設置的高度值來計算比例。
  </div>
</body>
</html>

image

<!doctype html>
<html  style="height:50%; ">
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>

<body   style="height:100%; background-color:#9F0">
 <div style="height:100%; background-color:#FFF" >
 body的高度設置成小於瀏覽器窗口高度,但是仍然填充滿整個瀏覽器窗口,但是其子元素的高度設置成百分比時,會按照父元素設置的高度值來計算比例。
  </div>
</body>
</html>

image

 

 

<!doctype html>
<html  style="height:150%; ">
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>

<body   style="height:100%; background-color:#9F0">
 <div style="height:100%; background-color:#FFF" >
 html的高度設置成大於瀏覽器窗口高度,會出現滾動條。
  </div>
</body>
</html>

 

image

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>

<body   style="height:50%; background-color:#9F0">
 <div style="height:100%; background-color:#FFF" >
   由於html沒有設置高度,在body上面設置height:50%,未達到預期效果
  </div>
</body>
</html>

image

 

<!doctype html>
<html style=" height:100%">
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>

<body   style="height:50%; background-color:#9F0">
 <div style="height:100%; background-color:#FFF" >
   由於html沒有設置高度,在body上面設置height:50%,未達到預期效果
  </div>
</body>
</html>

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM