css父元素高度设置 子元素设置height: 100% 不起作用

原理:浏览器是如何计算高度和宽度的。Web浏览器在计算有效宽度时会考虑浏览器窗口的打开宽度。如果你不给宽度设定任何缺省值,那浏览器会自动将页面内容平铺填满整个横向宽度。但是高度的计算方式完全不一样。事实上,浏览器根本就不计算内容的高度,             除非内容超出了视窗范围(导致滚动条出现)。或者你给整个页面设置一个绝对高度。否则,浏览器就会简单的让内容往下堆砌,页面的高度根本就无需考虑。因为页面并没有缺省的高度值,所以,当你让一个元素的高度设定为百分比高度时,无法根据获取父元             素的高度,也就无法计算自己的高度。换句话说,父元素的高度只是一个缺省值:height: auto。当你要求浏览器根据这样一个缺省值来计算百分比高度时,只能得到undefined的结果。也就是一个null值,浏览器不会对这个值有任何的反应。

解决:要么将父子元素都设置为height: 100% 或者都将其设置为min-height: 100%  (注意:子元素的 height 或是 min-height 百分比是否生效,基于父元素是否设置了固定高度或者是一个有效百分比高度。)

posted @ 2022-07-13 17:12  web小姬  阅读(2254)  评论(0)    收藏  举报