解决IE6不支持min-height和max-heigt的bug

先来解决下min-heigt的bug
布局过的人都知道CSS的最小高度min-height是个很有用的属性,它可以让很短的内容也有一个很合适的高度,使页面显得美观。但很可惜IE6不支持这一属性。怎么办呢?我们可以用另外一种方法让IE6也有最小高度min-height属性的效果。

众所周知,如果内容超过元素的高度,那么IE6是会自动增加元素的高度,即使你明确的定义了元素的高度。我们可以利用IE6的这个bug来让IE6也有最小高度min-height属性的效果。具体代码如下:

height:auto !important;
height:500px;
min-height:500px;

解释:

1、由于IE6对!important的解释存在bug,所以它只识别height:500px这一句,超过500px后,IE6自身会增加盒子的高度;
2、IE7和其他标准浏览器三句都能识别,虽然定义height:500px,但我们又有了height:auto !important,所以超过500px也能自动增加盒子的高度。
max-heigt的bug比较麻烦,有2种解决方法,先看jQuery方法:

if($.browser.msie&&($.browser.version === "6.0")){
$(".entry").each(function(){
if($(this)[0].scrollHeight>500)
$(this).css({"height":"500px","overflow":"hidden"});
});}

原理:

在IE6中可以通过设定height来达到max-height的效果. 循环所有要加max-height属性的DOM元素,判断他的scrollHeight大于你要设置的最大高度 如果超过了就通过设置height为最大高度,我这里使用的是[0],获取的是的DOM对象,而不是jQuery对象。

max-heigt的bug解决方法2-css表达式

height: expression( this.scrollHeight > 500 ? "500px" : "auto" ); /* sets max-height for IE */

原文地址:http://duanxin.me/articles/solve-ie6-does-not-support-the-min-height-and-max-heigt-bugs/

你可能感兴趣的:(前端设计)