浏览器兼容之旅第四站:IE常见Bug总结及修复方法—part2( 三 )


1、max-width

复制代码代码如下:
/* max-width for IE6 */
* html div.max-width {
width: expression(document.body.clientWidth299 ? "300px" : "auto");
}
/* max-width for standards-compliant browsers */
div.max-width {
max-width: 300px;
}

2、min-width

复制代码代码如下:
/* min-width for IE6 */
* html div.min-width {
width: expression(document.body.clientWidth301 ? "300px" : "auto");
}
/* min-width for standards-compliant browsers */
div.min-width {
min-width: 300px;
}

3、max-height

复制代码代码如下:
/* max-height for IE6 */
* html div.max-height {
height: expression(this.scrollHeight299 ? "300px" : "auto");
}
/* max-height for standards-compliant browsers */
div.max-height {
max-height: 300px;
}

4、min-height

复制代码代码如下:
/* min-height for IE6 */
div.min-height {
min-height: 500px;
height: auto !important;
height: 500px;
}

八、修复position:relative的Bug
这个Bug并不常见,因为我们有里在元素中使用position:relative达到某种效果 。在现代浏览器使用position:relative属性定位嵌套元素不会有任何问题,但在IE6下并不是那么的友好,常给会我们的布局带来一些意想不到的错误 。不过解决这样的问题很轻松,我们只需要给使用了相对定位的元素用zoom:1属性触发IE6下的hasLayout就可以解决 。

复制代码代码如下:
selector {
position: relative;
}
* html .selector {
zoom: 1;
}

注:使用zoom:1时不应该应用在行内元素(inline)上,不然在IE6下将触发元素为块元素 。
九、修复margin的负值
负边距在我们平时的Web制作中,为了达到一定的效果也时常用到,而在现代浏览器中使用负的边距并不会有任何问题,但是在IE6下对负的margin值并不友好,除非你在目标元素上使用position:relative属性:

复制代码代码如下:
.selector {
margin: -1.5em;
}
* html .selector {
position: relative;
zoom: 1;
}

十、修复overflow的问题
overflow是一个好东西呀,有时他可以帮我们把溢出的内容不在显示,有时也可以帮我们清除浮动(《Clear Float 》),用时还真离不开这个overflow 。可是在IE6上使用overflow属性会给我们带来意想不到的、无法解释的显示问题 。幸运的是我们配合hasLayout可以解决一下溢出问题,如下面的例子:

复制代码代码如下:
.selector {
overflow: hidden
}
* html .selector {
zoom: 1;
}

但当font-style:italic时,将有一个新的问题会发生会扩大它的父元素的宽度 。要解决这个细微的差别,只需要在元素的父元素加上一个:

复制代码代码如下:
* html .selector {
overflow-x: hidden;
}

这里我们又一起见证了IE下的另外十个Bug以及其避免和解决的方法,虽然没有《浏览器兼容之旅第三站:IE常见Bug总结及修复方法part1》中介绍的那十个Bug经典,但也是IE的Bug 。没有碰到或许你认为不是问题,但当你碰到了,又有时会抓破了头皮了都不知是何故,所以还是那句话,以备急需 。那么到现在,我们总共见证了IE下的二十种不同的Bug,以及其处理方法,其中有很多大家见识了,也处理过了,但我相信其中有很多肯定是没有遇到过,对于没有遇到过的,就了解一下吧,说不定哪一天你就碰到了 。哈 。。。。:) 。

推荐阅读