您的位置:首页 > 其它

IE中的max/min-height/width

2014-03-31 22:31 429 查看
今天看到了篇文章,到这翻译记下来。英文水平有限,部分只能靠自己的理解和意译下来,有哪里错误的地方,欢迎指出。
原文在这里
看那虚拟世界的第七大奇迹:在IE里的max/min-height和max/min-width。的确,利用IE独有的CSS属性,expression,你可以控制IE的宽和高在你想要的范围里。expression这个CSS属性可以使Javascript可以在IE里被执行。通过CSS执行Javasc?感谢你,微软!

为什么会说这样是很伟大的?因为在其他一些靠谱的浏览器,max/min-height和max/min-width可以很容易地通过这么一点的CSS实现..
<div style="max-width: 333px;">
[the contents of this division will be at most 333px in width on compliant browsers]
</div>


当然,在IE的世界是不可能的,它根本就不懂什么是max-width。但幸运的是,IE有一个它特有的expression属性,这个属性可以让我们可以用Javascript表达式去操纵(X)HTML的属性,就像max-width和max-height。例如,通过expression属性去定义一个width值,我们可以这样做:
div {
width: expression(333 + "px");
}
以上代码等同于:
div {
width: 333px;
}


使用IE expression的缺点是,如果用户的浏览器禁止了Javascript(或丢失了)的话就不会起到任何作用。不管怎样,建立起max/min-widths/heights(或者其他的一些属性),对web程序员来说还是很重要的。废话不多说了,下面来看看例子吧。

IE里的max-width

这个方法在IE6里被验证过,应该在IE5里也是可行的。你可以简单地根据你的需要修改属性的值,或者把你要控制的元素替换成条件语句里面。在这个例子里,我们为IE和其他主流靠谱的浏览器设置777px的max-width值。
* html div#division {
width: expression( document.body.clientWidth > 776 ? "777px" : "auto" ); /* sets max-width for IE */
}
div#division {
max-width: 777px; /* this sets the max-width value for all standards-compliant browsers */
}
下面的这个例子,我们为IE和其他主流靠谱的浏览器设置33em的max-width值。
* html div#division {
width: expression( document.body.clientWidth > (500/12) * parseInt(document.body.currentStyle.fontSize) ? "33em" : "auto" );
}
div#division {
max-width: 33em; /* this sets the max-width value for all standards-compliant browsers */
}


IE里的min-width

这个方法在IE6里被验证过,应该在IE5里也是可行的。你可以简单地根据你的需要修改属性的值,或者把你要控制的元素替换成条件语句里面。在这个例子里,我们为IE和其他主流靠谱的浏览器设置333px的min-width值。
* html div#division {
width: expression( document.body.clientWidth < 334 ? "333px" : "auto" ); /* set min-width for IE */
}
div#division {
min-width: 333px; /* sets min-width value for all standards-compliant browsers */
}


IE里的max-height

这个方法在IE6里被验证过,应该在IE5里也是可行的。你可以简单地根据你的需要修改属性的值,或者把你要控制的元素替换成条件语句里面。在这个例子里,我们为IE和其他主流靠谱的浏览器设置333px的max-height值。
* html div#division {
height: expression( this.scrollHeight > 332 ? "333px" : "auto" ); /* sets max-height for IE */
}
div#division {
max-height: 333px; /* sets max-height value for all standards-compliant browsers */
}


IE里的min-height

这个方法在IE6里被验证过,应该在IE5里也是可行的。你可以简单地根据你的需要修改属性的值,或者把你要控制的元素替换成条件语句里面。在这个例子里,我们为IE和其他主流靠谱的浏览器设置333px的min-height值。
* html div#division {
height: expression( this.scrollHeight < 334 ? "333px" : "auto" ); /* sets min-height for IE */
}
div#division {
min-height: 333px; /* sets min-height value for all standards-compliant browsers */
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IE 浏览器兼容