关于IE6,expression,max-width与IETester

用CSS的expression表达式在IE6下实现max-width效果,我也知道这是一个老生常谈的问题,但我还是写了,因为今天测试这个时碰到一件十分郁闷的事。

今天又碰到了老熟人:在IE6下限定图片的最大宽度(max-width),于是照例打开IEtester,新建一个IE6标签来测试。但随后我发现expression方法居然完全没有效果,这是什么情况?表达式写错了?于是我在网上找寻了N个不同的写法,但毫无例外全部无效。

我记得之前不久也搞过这个问题,好像当时也没做出来,于是有点气馁了,放在一边。但我又清楚的记得原来的原来我试过是完全能行的啊,于是我在很久前的一些CSS特殊效果例子中翻到了ie6 实现max-width的那网页,不过一测试,还是没效果。

继续测试,发现原来所有的expression都没有效果。这是怎么搞的?

突然间我醒悟了,打开电脑上的纯IE8,测试expression表达式,发现居然有效!

意思就是我搞了这几个小时换了好几个花样都没弄明白的问题只是因为IETester模拟的IE不支持expression表达式!我靠

血的教训,我记住了。

经在IE8下测试,在IE6中实现max-width的expression如下:

1
2
3
4
img {
/*以下方法切实可行,ietester不支持expression,用IE7,8可测试效果(去掉_)*/
_width: expression((this.offsetWidth > 290) ? '290px' : true);
}

大家测试的时候千万不要用ietester!因为它不支持expression,如果没有IE6可以用本机的IE7或8,只要在它们中能用,那在IE6中也同样能用。注意:用IE7+测试的时候记得删掉原来的max-width属性,不然可能造成混淆。

立此文为记,希望以后不再出现这鬼马事件。如果有不能实现的可以留言问我。

5 评论

发表评论

电子邮件地址不会被公开。