有時咱們會困惑爲何設置div的height:100%;沒有效果,以下所示:html
要解決這個問題,先的知道設置height:100%的原理,當你讓一個元素的高度設置爲百分比高度時,是相對於父元素的高度根據百分比來計算高度。 因此當父元素沒有高度時,height:100%也就沒有高度值,因此咱們來設置body高度。瀏覽器
可見仍是沒有效果,緣由跟上一個同樣,其父元素也沒有高度,因此咱們來設置html的高度。測試
可見產生了咱們想要的效果。spa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>測試height100%</title> </head> <style> *{ padding: 0; margin: 0; } html{ height: 100%; } body{ height: 100%; } .wqh{ height: 100%; background-color: royalblue; } </style> <body> <div class="wqh"></div> </body> </html>
html 的父元素能夠理解成window,瀏覽器會將html填充完一個瀏覽器窗口。htm
設置html的height爲具體的像素值,當其值大於瀏覽器窗口時,瀏覽器出現滾動條,當其值小於瀏覽器窗口時,一樣會將html填充完整個瀏覽器窗口(能夠設置背景測試)。it
設置html的height爲百分比時,當其值大於100%出現滾動條,當小於100%時一樣會將html填充完整個瀏覽器窗口(能夠設置背景測試)。class
可是子html的子元素的高度設置成百分比時,會按照html設置的高度值計算比例。(以下所示,html高度爲1000px;因此body的高度爲500px)。原理
對於body的設置的高度小於瀏覽器窗口時,一樣會填充滿整個瀏覽器窗口(能夠設置背景測試),可是其子元素的高度設置成百分比時,會按照body設置的高度值來計算比例。進階