网页时尽量是不用设置固定高度的,这样拓展起来更灵活,如果非要设固定高度,就有一些需要注意的地方。
IE6和IE7对CSS的解释存在很多差别,今天谈其中一点:height。
例子:<div style="height:50px">
IE6下:如果DIV里的内容高度不超过50px,DIV的高度就是50px,如果超过了设定的值,高度会随内容而撑开,也就是通常说的自适应高度。
IE7下:如果DIV里的内容高度不超过50px,DIV的高度就是50px,如果超过了设定的值,DIV的高度仍会固定在50px,多余的内容会超过DIV而溢出,如果DIV下面还有其它内容,就会和溢出的内容重叠在一起。
这显然是一个非常值得注意的地方,若不处理会引起页面错乱。解决这个问题通常分两种情况:
一,高度为主:让DIV的高度固定为50px,多出的内容要隐藏,两个浏览器的CSS可一并写为:<div style="height:50px;overflow:hidden">,overflow:hidden这个很重要,兼容性全靠他了
二:内容为主:让DIV高度最小为50px,内容过多时DIV高度自适应内容多少。这时需要用到CSS HACK做一些兼容处理:
<div style="min-height:50px;_height:50px;">,min-height:50px 最小高度,这个IE7和FF可识别,_height:50px 加下划线目的只让IE6识别。
如果你是使用IE6来做的网页,你也许把一个DIV的高度设置成了固定高度,
你在IE6中他完全是自适应的,随着内部内容的增多他会自动变长。
遗憾的是这种情况在符合web标准的浏览器中试非常的糟糕。
我们来做个试验:
样式:
<style>
.gao{
width:80%;
height:50px;
border: 1px solid #CCCCCC;
}
</style>
结构:
<div class="gao">这里面是内容</div>
IE6中如下显示,div中的内容高度已经超出50像素,<div class="gao"></div> 已经自动适应。