百分比布局时,我们有时候会遇到给高度 height 设置百分比后无效的情况,而宽度设置百分比却是正常的。
当为一个元素的高度设定为百分比高度时,是相对于父元素的高度来计算的。当没有给父元素设置高度(height)时或设置的高度值百分比不生效时,浏览器会根据其子元素来确定父元素的高度(块级元素的高是由子元素撑开的),所以当无法获取父元素的高度时,也就无法计算自己的高度。
换句话说,父元素的高度是一个缺省值,当你要求浏览器根据这样一个缺省值来计算百分比高度时,浏览器不会对这个值有任何的反应。
问题原因:只为部分父元素设置了高度,有时可能忽略了html也需要设置高度。
解决方法:
html,
body {height: 100%
}