1、IE 浏览器和火狐浏览器兼容问题.txt22 真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙打开呀!IE 浏览器和火狐浏览器兼容问题CSS 篇一、cssdiv 样式 IE 与 FF 兼容问题汇总 IE 和火狐的 css 兼容性问题归总CSS 对浏览器器的兼容性具有很高的价值,通常情况下 IE 和火狐浏览器存在很大的解析差异,这里介绍一下兼容要点。 1、DOCTYPE 影响 CSS 处理 2、F
2、F: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3、FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 4、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width 5、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式,值得注意的是,一定要将 xxx
3、x !important 这句放置在另一句之上 6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 7、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 8、FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 men
4、ubar 中插入一个空格。 9、在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:divmargin:30px!important;margin:28px; 注意这两个 margin 的顺序一定不能写反,据阿捷的说法!important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样:divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important; 10、IE5 和 IE6 的 BOX 解释不一致 IE5 下 divwidth:30
5、0px;margin:0 10px 0 10px;div 的宽度会被解释为 300px-10px(右填充)-10px(左填充)最终 div 的宽度为 280px,而在IE6 和其他浏览器上宽度则是以 300px+10px(右填充)+10px(左填充)=320px 来计算的。这时我们可以做如下修改 divwidth:300px! important;width /*/:340px;margin:0 10px 0 10px关于这个/*/是什么我也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持,如果有人理解的话,请告诉我一声,谢了!:) 11、ul 标签在 Mozilla 中
6、默认是有 padding 值的,而在 IE 中只有 margin 有值所以先定义ulmargin:0;padding:0;就能解决大部分问题注意事项:1、float 的 div 一定要闭合。例如:(其中 floatA、floatB 的属性已经设置为 float:left;)这里的 NOTfloatC 并不希望继续平移,而是希望往下排。这段代码在 IE 中毫无问题,问题出在 FF。原因是 NOTfloatC 并非 float 标签,必须将float 标签闭合。在之间加上这个 div 一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有 float属性的 div 同级,之间不能存在嵌套关
7、系,否则会产生异常。并且将 clear 这种样式定义为如下即可:.clearclear:both;此外,为了让高度能自动适应,要在 wrapper 里面加上 overflow:hidden;当包含 float 的 box 的时候,高度自动适应在 IE 下无效,这时候应该触发 IE 的layout 私有属性(万恶的 IE 啊!)用 zoom:1;可以做到,这样就达到了兼容。例如某一个 wrapper 如下定义:.colwrapperoverflow:hidden;zoom:1;margin:5px auto;2、margin 加倍的问题。设置为 float 的 div 在 ie 下设置的 mar
8、gin 会加倍。这是一个 ie6 都存在的 bug。解决方案是在这个 div 里面加上 display:inline;例如:相应的 css 为#IamFloatfloat:left;margin:5px;/*IE 下理解为 10px*/display:inline;/*IE 下再理解为 5px*/3、关于容器的包涵关系很多时候,尤其是容器内有平行布局,例如两、三个 float 的 div 时,宽度很容易出现问题。在 IE 中,外层的宽度会被内层更宽的 div 挤破。一定要用 Photoshop 或者 Firework量取像素级的精度。4、关于高度的问题如果是动态地添加内容,高度最好不要定义。浏
9、览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)5、最狠的手段 - !important;如果实在没有办法解决一些细节问题,可以用这个方法.FF 对于”!important”会自动优先解析,然而 IE 则会忽略.如下.tabd1background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for
10、IE */值得注意的是,一定要将 xxxx !important 这句放置在另一句之上,上面已经提过;IE7.0 出来了,对 CSS 的支持又有新问题。浏览器多了,网页兼容性更差了,疲于奔命的还是我们 ,为解决 IE7.0 的兼容问题,找来了下面这篇文章:现在我大部分都是用!important 来 hack,对于 ie6 和 firefox 测试可以正常显示,但是 ie7 对!important 可以正确解释,会导致页面没按要求显示!搜索了一下,找到一个针对IE7 不错的 hack 方式就是使用 “*+html” ,现在用 IE7 浏览一下,应该没有问题了。现在写一个 CSS 可以这样:#ex
11、ample color: #333; /* Moz */* html #example color: #666; /* IE6 */*+html #example color: #999; /* IE7 */那么在 firefox 下字体颜色显示为#333,IE6 下字体颜色显示为#666,IE7 下字体颜色显示为#999,他们都互不干扰。-先温习一下对于 IE 的 box-model 的破解IE box-model 这个臭名昭著的 bug 存在于 IE6/Win 以前的每一只版本,这个虫子直到tantak 发布了流传最为广泛的那个 hack 才开始被驯服IE5.X/win 对 box-mod
12、el 的解析是一样的,他们认为 width 包括了边框(border)和补白(padding),幸运的是这个情况在 IE6 中有了好转但是 IE6 在向后兼容的同时也包容了以前的错误,IE6 其实有两个核心,在旧的页面前他仍旧表现出对错误的宽容,只有在文档中严格地加上文档类型(DOCTYPE)声明,IE6 才能够接受正确的 box-model所以,tantak 的 hack 必须和正确的 DOCTYPE 同时包含在文档中才能够正常工作Quotediv.content width:400px; /这个是错误的 width,所有浏览器都读到了voice-family: “; /IE5.X/win
13、忽略了“后的内容voice-family:inherit;width:300px; /包括 IE6/win 在内的部分浏览器读到这句,新的数值(300px)覆盖掉了旧的htmlbody .content /htmlbody 是 CSS2 的写法width:300px; /支持 CSS2 该写法的浏览器有幸读到了这一句现在回到主题,我们经常看到!important 和(空格)/*/:组合在一起使用,这个写法有什么奥妙呢?看刚才那个写法,我这里可以提供另一种写法也能达到这样的效果Quotediv.content width:300px !important; /这个是正确的 width,大部分支持
14、!important 标记的浏览器使用这里的数值width(空格)/*/:400px; /IE6/win 不解析这句,所以 IE6/win 仍然认为 width 的值是 300px;而 IE5.X/win 读到这句,新的数值(400px)覆盖掉了旧的,因为!important 标记对他们不起作用htmlbody .content /htmlbody 是 CSS2 的写法width:300px; /支持 CSS2 该写法的浏览器有幸读到了这一句同样,这个方法仍必须依靠正确的文档类型声明才能够正常工作,原因在前面已经说过。文档类型声明就像一个开关,打开向后兼容的未来,而错误使用的话,就是一个Pan
15、dora box-ie7.0 的面世,尚且不论他是否较之 ie6.0 进步, ie7 和 ie6 之间不兼容,毫无疑问又引入了新的痛处,至少在调试的过程中,又多了一道程序以及随之而来的大量不兼容。目前,使用 ie7.0 的用户尚且是少数,使用 ie6.0 的用户仍然占据很大的比重。然而,大量通过 ie6 测试的网页,在 ie7.0 中都显示不正常。据 ie7.0 官方解说:ie7.0 在 IE6 的基础上引入了 strict 模式,包含了许多有关于层叠样式表(CSS)解析与呈现的改进。这些改进意在提高 Internet Explorer 解释层叠样式表的一致性,以达到 W3C的推荐的标准,同时
16、为开发者提供一个可以依赖的功能集合。不管官方的语言是多么动听,也不管 ie7.0 是不是真的 W3C 了,浏览器之间太多个性化的东西,太多差异,让我们无可奈何。在 ie7.0 下设计出的网页,ie6 下面显示的几乎是不堪入目。那么,我们在设计网页的时候,在解决好 ie6.0 与火狐的兼容问题的同时,我们是更多的服从符合 W3C 一些的 ie7.0,还是对 96%的 ie6.0 妥协?这个问题其实有些多余,我们能做的,或许只有选择中庸,只有尽量调试到各个浏览器都显示正常吧。ie7.0 与 ie6.0 的之间不兼容,目前就我知道的有如下几个方面,如有遗漏或者说错了的地方,欢迎在后面补充或者纠正。1
17、. ie7,ie6 div+css 出现宽度定义不同在宽度定义上出现宽度的解释不同,IE7 宽度在 IE6 上要宽一些,正是这个原因网页可能会出现溢出问题, 还好这个问题可以通过更改数值或者修改一下百分比解决.2. ie7.0 修复了!important 这个 bug。先前由于 ie6.0 对!important 识别存在 bug, 在 firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px,大部分网页标准设计师通过这个 bug 来兼容 ie6.0 和 firefox,即采用:div margin:30px!important;margin:28px;。但是 ie7.0 把这个
18、 bug 给修复了,所以问题又出现了,怎么兼容 ie.7.0 的同时又能兼容 ie6.0 和 firefox?3. Box Model 的改变在 IE7 中,为了适应 CSS2.1 box model 修改了溢出的行为。4. ie7.0 中一些 CSS filter 将不再可用IE7 中修改了许多潜在解析错误,这些可能会阻止 filter 在以前的 IE 版本中正常工作。如:*HTML filter,下划线 filter 和/*/注释 filter 等等。5. ie7.0 对很多不规范的 css 不再支持,对 js 语法要求更严格规范。 overflow:hidden 这个 CSS 样式是大家
19、常用到的 CSS 样式,但是大多数人对这个样式的理解仅仅局限于隐藏溢出,而对于清除浮动这个含义不是很了解。一提到清除浮动,我们就会想到另外一个 CSS 样式:clear:both,我相信对于这个属性的理解大家都不成问题的。但是对于“浮动”这个词到底包含什么样的含义呢?我们下面来详细的阐述一下。这是一个常用的 div 写法,下面我们来书写样式。大家可以在 DMX 中自己做试验#wai width:500px; background:#000; height:500px;#nei float:left; width:600px; height:600px; background:red;可以看到,
20、我给 nei 这个 id 加了一个浮动,我们常规的理解是,我们允许 nei 这个 id 的div 的右边出现其他的内容,只要它的宽度不超过 wai 这个 div 和 nei 这个 div 的剩余值。如果 div wai 中还包含其他的 div,我不允许它出现在 nei 的右侧,我们则用样式clear:both 指定这个 div,不允许它浮动在 nei 右侧。这些在 ie6 里面是正确的。但是在火狐或者其他浏览器里面,我们发现问题并非如此简单。我们发现,当 nei 这个 div 的宽度和高度都大于 wai 这个 div 的时候,wai 并没有被内撑开而是依旧显示为我们指定的宽高。在我的例子中,都
21、是 500。这个时候我不理解了,我搜索了很多的资料,但是都没能理解这是为什么,直到看到别人在类似的情况下给 wai 这个 div 加了一个 overflow:hidden 这个属性解决了这个问题。我们直到 overflow:hidden 这个属性的作用是隐藏溢出,给 wai 加上这个属性后,我们的nei 的宽高自动的被隐藏掉了。另外,我们再做一个试验,将 wai 这个 div 的高度值删除后,我们发现,wai 的高度自动的被 nei 这个 div 的高度值给撑开了。说到这里,我们再来理解一下“浮动”这个词的含义。我们原先的理解是,在一个平面上的浮动,但是通过这个试验,我们发现,这不仅仅是一个平
22、面上的浮动,而是一个立体的浮动!也就是说,当 nei 这个 div 加上浮动这个属性的时候,在显示器的侧面,它已经脱离了 wai这个 div,也就是说,此时的 nei 的宽高是多少,对于已经脱离了的 wai 来说,都是不起作用的。打个形象的比喻就是当 JJ 脱离 BB 的时候,JJ 的大小对于 BB 是没有撑开的作用的(有点少儿不宜的感觉-_-|)OK,当我们全面的理解了浮动这个词的含义的时候,我们就理解 overflow:hidden 这个属性中的解释,清除浮动是什么意思了。也就是说,当我们给 wai 这个 div 加上overflow:hidden 这个属性的时候,其中的 nei 等等带浮
23、动属性的 div 的在这个立体的浮动已经被清除了,就好比 JJ 又进入了 BB 内,JJ 的大小自然又会影响到 BB 的大小。这就是 overflow:hidden 这个属性清除浮动的准确含义。当我们没有给 wai 这个 div 设置高度的时候,nei 这个 div 的高度,就会撑开 wai 这个div,而在另一个方面,我们要注意到的是,当我们给 wai 这个 div 加上一个高度值,那么无论 nei 这个 div 的高度是多少,wai 这个高度都是我们设定的值。而当 nei 的高度超过wai 的高度的时候,超出的部分就会被隐藏。这就是隐藏溢出的含义!我相信,通过我的这些文字,大家对 over
24、flow:hidden 这个属性有了全新的认识。希望大家和我一样,在 div+css 学习中能够不断的进步! 1、DOCTYPE 影响 CSS 处理2、FF:div 设置 margin-left, margin-right 为 auto 时已经居中,IE 不行3、FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中4、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 wid
25、th5、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行7、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以8、FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为
26、了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。9、在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:divmargin:30px!important;margin:28px;注意这两个 margin 的顺序一定不能写反,据阿捷的说法!important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样:divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important;10、IE5 和 IE6 的
27、BOX 解释不一致IE5 下divwidth:300px;margin:0 10px 0 10px;div 的宽度会被解释为 300px-10px(右填充)-10px(左填充)最终 div 的宽度为 280px,而在IE6 和其他浏览器上宽度则是以 300px+10px(右填充)+10px(左填充)=320px 来计算的。这时我们可以做如下修改divwidth:300px!important;width /*/:340px;margin:0 10px 0 10px关于这个/*/是什么我也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持。11、ul 标签在 Mozilla
28、中默认是有 padding 值的,而在 IE 中只有 margin 有值所以先定义ulmargin:0;padding:0;就能解决大部分问题注意事项:1、float 的 div 一定要闭合。例如:(其中 floatA、floatB 的属性已经设置为 float:left;)这里的 NOTfloatC 并不希望继续平移,而是希望往下排。这段代码在 IE 中毫无问题,问题出在 FF。原因是 NOTfloatC 并非 float 标签,必须将float 标签闭合。在之间加上这个 div 一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有 float 属性的 div 同级,之间不能存在嵌
29、套关系,否则会产生异常。并且将 clear 这种样式定义为为如下即可:.clearclear:both;此外,为了让高度能自动适应,要在 wrapper 里面加上 overflow:hidden;当包含 float 的 box 的时候,高度自动适应在 IE 下无效,这时候应该触发 IE 的 layout 私有属性(万恶的 IE 啊!)用 zoom:1;可以做到,这样就达到了兼容。例如某一个 wrapper 如下定义:以下为引用的内容:.colwrapperoverflow:hidden;zoom:1;margin:5px auto; 以下前遇到过2、margin 加倍的问题。设置为 float
30、 的 div 在 ie 下设置的 margin 会加倍。这是一个 ie6 都存在的 bug。解决方案是在这个 div 里面加上 display:inline;例如:相应的 css 为以下为引用的内容:#IamFloatfloat:left;margin:5px;/*IE 下理解为 10px*/display:inline;/*IE 下再理解为 5px*/ 3、关于容器的包涵关系很多时候,尤其是容器内有平行布局,例如两、三个 float 的 div 时,宽度很容易出现问题。在 IE 中,外层的宽度会被内层更宽的 div 挤破。一定要用 Photoshop 或者 Firework 量取像素级的精度
31、。4、关于高度的问题如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。 (似乎有时候不会自动往下撑开,不知道具体怎么回事)5、最狠的手段 - !important;如果实在没有办法解决一些细节问题,可以用这个方法.FF 对于“!important“会自动优先解析,然而 IE 则会忽略。如下以下为引用的内容:.tabd1background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/res/images/up/t
32、ab1.gif) no-repeat 1px 0px; /* Style for IE */ 值得注意的是,一定要将 xxxx !important 这句放置在另一句之上,上面已经提过 undefined undefinedirefox 不支持 hand,但 ie 支持 pointer 解决方法: 统一使用 pointer 5. padding 问题 padding 5px 4px 3px 1px FireFox 无法解释简写, 必须改成 padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px; 6. 消
33、除 ul、ol 等列表的缩进 消除 ul、ol 等列表的缩进样式应写成:list-style:none;margin:0px;padding:0px; 其中 margin 属性对 IE 有效,padding 属性对 FireFox 有效 7. CSS 透明 IE:filter:progidXImageTransform.Microsoft.Alpha(style=0,opacity=60)。 FF:opacity:0.6。 8. CSS 圆角 IE:不支持圆角。 FF: -moz-border-radius:4px,或者 -moz-border-radius-topleft:4px; -moz
34、-border-radius-topright:4px; -moz-border-radius-bottomleft:4px; -moz-border-radius- bottomright:4px;。 9. CSS 双线凹凸边框 IE:border:2px outset;。 FF: -moz-border-top-colors: #d4d0c8 white; -moz-border-left-colors: #d4d0c8 white; -moz-border-right-colors:#404040 #808080; -moz-border-bottom-colors:#404040 #8
35、08080; 10. 滤镜 IE 中支持使用滤镜,而 Firefox 中不支持. 11. 禁止选取网页内容: 在 IE 中一般用 js:obj.onselectstart=function()return false; 而 firefox 用 CSS:-moz-user-select:none;常见兼容问题:模板无忧-mb5u_COmWWW.MB5U_COM1、DOCTYPE 影响 CSS 处理MB5UCOM2、FF:div 设置 margin-left, margin-right 为 auto 时已经居中,IE 不行WWW.MB5U_COM3、FF: body 设置 text-align 时
36、, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 模板无忧-mb5u_COm4、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 widthWWW.MB5U_COM模板无忧-mb5u_COm5、FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 非凡设置样式Mb5U.com-模板无忧6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个
37、DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行MB5UCOM7、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以WWW.MB5U_COM8、FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。www.MB5U_COMMB5U_COM9、在 mozilla firefox 和
38、IE 中的 BOX 模型解释不一致导致相差 2px 解决方法:MB5UCOMdivmargin:30px!important;margin:28px;模板无忧-M注重这两个 margin 的顺序一定不能写反,据阿捷的说法!important 这个属性 IE 不能识别,但别的浏览器可以识别。所以在 IE 下其实解释成这样:模板无忧-MB5U.-COMMB_模板无忧divmaring:30px;margin:28pxWWW.MB5U_COM重复定义的话按照最后一个来执行,所以不可以只写 margin:XXpx!important; wwW.MB5U_COM10、IE5 和 IE6 的 BOX 解释
39、不一致 模板无忧-MIE5 下MB5U_coMMB_模板无忧divwidth:300px;margin:0 10px 0 10px;WWW.MB5U_COMMB_模板无忧div 的宽度会被解释为 300px-10px(右填充)-10px(左填充)最终 div 的宽度为 280px,而在IE6 和其他浏览器上宽度则是以 300px 10px(右填充) 10px(左填充)=320px 来计算的。这时我们可以做如下修改 wwW.MB5U_COMdivwidth:300px!important;width /*/:340px;margin:0 10px 0 10pxMB5UCOM关于这个/*/是什么我
40、也不太明白,只知道 IE5 和 firefox 都支持但 IE6 不支持。MB_模板无忧11、ul 标签在 Mozilla 中默认是有 padding 值的,而在 IE 中只有 margin 有值所以先定义WWW.MB5U_COM模板无忧-Mulmargin:0;padding:0;www.MB5U_COM就能解决大部分问题 WWW.MB5U_COM注重事项:MB5U_COMMb5U.com-模板无忧1、float 的 div 一定要闭合。MB5U_COM例如:(其中 floatA、floatB 的属性已经设置为 float:left;)wwW.MB5U_COM模板无忧-M模板无忧-mb5u_
41、COmMb5U.com-模板无忧模板无忧-MB5u_com这里的 NOTfloatC 并不希望继续平移,而是希望往下排。模板无忧-mb5u_COm模板无忧-mb5u_COm这段代码在 IE 中毫无问题,问题出在 FF。原因是 NOTfloatC 并非 float 标签,必须将float 标签闭合。MB5U_COM在WWW.MB5U_COMMb5U.com-模板无忧MB5U_COMMB5U_COM之间加上wWw.MB5U_COMmb5u-Com-模板无忧MB5U_coM这个 div 一定要注重声明位置,一定要放在最恰当的地方,而且必须与两个具有 float 属性的 div 同级,之间不能存在嵌套
42、关系,否则会产生异常。wwW.MB5U_COM并且将 clear 这种样式定义为为如下即可:wwW.MB5U_COM.clear模板无忧-mb5u_COmclear:both; 模板无忧-MB5U.-COM此外,为了让高度能自动适应,要在 wrapper 里面加上 overflow:hidden;模板无忧-M当包含 float 的 box 的时候,高度自动适应在 IE 下无效,这时候应该触发 IE 的 layout 私有属性(万恶的 IE 啊!)用 zoom:1;可以做到,这样就达到了兼容。 WWW.MB5U_COM例如某一个 wrapper 如下定义:模板无忧-MB5U.-COM以下为引用的
43、内容:.colwrapperoverflow:hidden;zoom:1;margin:5px auto; 模板无忧-MB5U.-COMwww.MB5U_COM2、margin 加倍的问题。 MB_模板无忧设置为 float 的 div 在 ie 下设置的 margin 会加倍。这是一个 ie6 都存在的 bug。MB5U_coM解决方案Mb5U.com-模板无忧是在这个 div 里面加上 display:inline; www.MB5U_COM例如:模板无忧-MB5U.-COM模板无忧-MB5u_commb5u-Com-模板无忧相应的 css 为MB5U_coM模板无忧-MB5u_com以下
44、为引用的内容:#IamFloatfloat:left;margin:5px;/*IE 下理解为 10px*/display:inline;/*IE 下再理解为 5px*/ mb5u-Com-模板无忧3、关于容器的包涵关系www.MB5U_COMMB5U_COM很多时候,尤其是容器内有平行布局,例如两、三个 float 的 div 时,宽度很轻易出现问题。在 IE 中,外层的宽度会被内层更宽的 div 挤破。一定要用 Photoshop 或者 Firework 量取像素级的精度。 Mb5U.com-模板无忧4、关于高度的问题模板无忧-mb5u_COm模板无忧-M假如是动态地添加内容,高度最好不要
45、定义。浏览器可以自动伸缩,然而假如是静态的内容,高度最好定好。 (似乎有时候不会自动往下撑开,不知道具体怎么回事)MB5UCOM模板无忧-mb5u_COm5、最狠的手段 - !important; MB_模板无忧假如实在没有办法解决一些细节问题,可以用这个方法.FF 对于“!important“会自动优先解析,然而 IE 则会忽略。如下 www.MB5U_COM以下为引用的内容:.tabd1background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/background:url(/r
46、es/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */ Mb5U.com-模板无忧WWW.MB5U_COM值得注重的是,一定要将 xxxx !important 这句放置在另一句之上,上面已经提过 undefined undefinedCSS 兼容 IE 与 Firefox 要点分析 2006-10-15 14:43IE vs FF CSS 兼容要点: DOCTYPE 影响 CSS 处理 FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 FF: body 设置 te
47、xt-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式 div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个 DIV 一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要
48、控制内容不要换行 cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格 XHTML+CSS 兼容性解决方案小集 使用 XHTMLCSS 构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找 1.在 mozilla firefox 和 IE 中的 BOX 模型解释不一致导致相差 2px 解决方法: divmargin:30px!important;margin:28px;注意这两个 margin 的顺序一定不能写反,据阿捷的说法!importan