当我们给块级元素设置响应式高度的时候,例如给div设置height=50%,往往没能看到效果。
原因是百分比的大小是相对其父级元素宽高的大小,如最外层元素设置的百分比是对应屏幕而言的。
需要了解的是对于宽度来说,其父级元素无须确定宽度就能设置百分比,例如我们可以利用这个特性给未知宽度的块级元素设置水平居中效果:
父元素css: position: relative/absolute; left: 50%;
子元素css: position: relative; left: -50%;
但高度则不同,若某元素的父元素没有确定高度,则无法有效使用height=XX%的样式,我们可以这样解决(假设最外层的div需要设置百分比高度样式):
代码如下:
html, body { height: 100%; } .outDiv { height: 50%; }
不过这里有个需要注意的,若div里的内容超出了div的高度,在IE7+的浏览器是无法将div撑起来的(IE6则可以),如果要顾及这一点,可以使用min-height解决(当然也要考虑IE6不支持min-height的问题):
代码如下:
html, body { height: 100%; } .outDiv { min-height: 50%; } * html .outDiv { height: 50%; }

本文深入探讨了在网页布局中为块级元素设置响应式高度时遇到的常见问题及其解决方案,包括如何在未知宽度的情况下实现水平居中效果,并详细解释了为什么百分比高度在某些情况下无法正确应用,以及如何通过设置html和body的高度以及使用min-height来克服这一挑战。
1503

被折叠的 条评论
为什么被折叠?



