html的height:100%;高度是多少
html设置height:100%;表示一屏高度,类似于100vh。未设置则根据子元素的高度来自适应高。在实际应用中,设置页面高度为1屏幕高度通常设置:
html,body{ height:100%; margin:0; padding:0; }
可以通过案例设置来查看html的实际高度。通过案例中改变窗口的高度大小,可以发现html的高度也是在变换的。
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>html设置高度100%</title> <style> html, body { height: 100%; background-color: pink; margin: 0; padding: 0; } #wrap { width: 50%; height: 50%; background-color: purple; } </style> <script> /* 获取html元素的高度 *每次发生窗口大小改变,就获取html的高度。可以发现html的高度随着窗口可用区的高度增大而增大,减小而减小。 */ window.onload = function () { window.onresize = function () { var oHtml = document.getElementsByTagName('html')[0]; var Htmlheight = oHtml.offsetHeight; console.log(Htmlheight); } } </script> </head> <body> <div id='wrap'> </div> </body> </html>
思考:设置整个页面的高度为一窗口可用区的一屏幕高度时,为什么还要设置body的高度为100%?
因为body如果为默认设置,它的高度值为auto,会根据子元素的高度来支撑高度。倘若子元素的高度设置为依赖父元素(body)的高度来支持的百分比数值,那么就形成了悖论。最后浏览器找不到计算高度的情况下,body的高度实际被设置为0。