IE6下最大宽度、最小宽度、最大高度和最小高度
五月 17, 2011
4 comments
CSS2.0中,有四个属性是设置元素最大宽度、最小宽度、最大高度和最小高度的,它们分别是:max-width、mix-width、max-height和mix-height。使用它们,可以方便为元素设定最大、最小宽度和高度。
但是,万恶的IE6竟然不支持它。所以我们只能对IE6另外寻找方法了,本文使用的方法是expression。代码如下:
/* 最小寬度 */
.min_width{min-width:300px;
/* sets max-width for IE */
_width:expression(document.body.clientWidth < 300 ? "300px" : "auto");
}
/* 最大寬度 */
.max_width{
max-width:600px;
/* sets max-width for IE */
_width:expression(document.body.clientWidth > 600 ? "600px" : "auto");
}
/* 最小高度 */
.min_height{
min-height:200px;
/* sets min-height for IE */
_height:expression(this.scrollHeight < 200 ? "200px" : "auto");
}
/* 最大高度 */
.max_height{
max-height:400px;
/* sets max-height for IE */
_height:expression(this.scrollHeight > 400 ? "400px" : "auto");
}
/* 最大最小寬度 */
.min_and_max_width{
min-width:300px;
max-width:600px;
/* sets min-width & max-width for IE */
_width: expression(
document.body.clientWidth < 300 ? "300px" :
( document.body.clientWidth > 600 ? "600px" : "auto")
);
}
/* 最大最小高度 */
.min_and_max_height{
min-height:200px;
max-height:400px;
/* sets min-height & max-height for IE */
_height: expression(
this.scrollHeight < 200 ? "200px" :
( this.scrollHeight > 400 ? "400px" : "auto")
);
}
解释一下代码中的expression:expression是微软为IE5.0版本以后的浏览器加入到一个属性,用来把CSS属性和JavaScript表达式关联起来。简单的说就是CSS属性后面可以跟一段JavaScript表达式。上面的例子就是通过JavaScript表达式计算出元素的最大、最小宽度和高度的值,然后赋予CSS。
每次都要定义IE6这个例外,实在是折腾。
[回复]
上次在写“图片放大”jq代码时用过这些css属性解决ie6问题,后来干脆就去掉ie6的支持了,太蛋疼了。
[回复]
Jayuh
回复:
六月 3rd, 2011 at 10:28
Good job!
不过为客户做网站的时候,还是要兼容IE6…
[回复]
dog sun IE6
[回复]