IE浏览器和火狐浏览器兼容问题

上传人:dg****3 文档编号:72008683 上传时间:2022-04-07 格式:DOC 页数:22 大小:83KB
收藏 版权申诉 举报 下载
IE浏览器和火狐浏览器兼容问题_第1页
第1页 / 共22页
IE浏览器和火狐浏览器兼容问题_第2页
第2页 / 共22页
IE浏览器和火狐浏览器兼容问题_第3页
第3页 / 共22页
资源描述:

《IE浏览器和火狐浏览器兼容问题》由会员分享,可在线阅读,更多相关《IE浏览器和火狐浏览器兼容问题(22页珍藏版)》请在装配图网上搜索。

1、.IE浏览器和火狐浏览器兼容问题.txt22真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙翻开呀!IE浏览器和火狐浏览器兼容问题CSS篇一、cssdiv 样式 IE与FF兼容问题汇总 IE和火狐的css兼容性问题归总CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和火狐浏览器存在很大的解析差异,这里介绍一下兼容要点。 1、DOCTYPE 影响 CSS 处理 2、FF: div 设置 ma

2、rgin-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 特别设置样式,值得注意的是,一定要将* !important 这句

3、放置在另一句之上 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, 可以在 menubar 中插入一个空格。 9、在m

4、ozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:divmargin:30px!important;margin:28px; 注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写margin:*px!important; 10、IE5 和IE6的BOX解释不一致 IE5下divwidth:300px;margin:0 10px 0 10px;div的宽度会被解释为300px

5、-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中默认是有padding值的,而在IE中只有margin有值所以先定义ulmargin:0;padding:0; 就

6、能解决大局部问题考前须知:1、float的div一定要闭合。例如:(其中floatA、floatB的属性已经设置为float:left;)这里的NOTfloatC并不希望继续平移,而是希望往下排。这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。在之间加上这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否那么会产生异常。并且将clear这种样式定义为如下即可:.clearclear:both;此外,为了让高度能自动适应,要在wrapper里面加上overflow

7、:hidden;当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就到达了兼容。例如某一个wrapper如下定义:.colwrapperoverflow:hidden;zoom:1;margin:5px auto;2、margin加倍的问题。设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;例如:相应的css为*IamFloatfloat:left;margin:5px;/*IE下理解为10px*/di

8、splay:inline;/*IE下再理解为5px*/3、关于容器的包涵关系很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。4、关于高度的问题如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)5、最狠的手段 - !important;如果实在没有方法解决一些细节问题,可以用这个方法.FF对于!important会自动优先解析,然而IE那么会忽略.如下.

9、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 IE */值得注意的是,一定要将* !important 这句放置在另一句之上,上面已经提过;IE7.0出来了,对CSS的支持又有新问题。浏览器多了,网页兼容性更差了,疲于奔命的还是我们 ,为解决IE7.0的兼容问题,找来了下面这篇文章:现在我大局部都是用!importan

10、t来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!搜索了一下,找到一个针对IE7不错的hack方式就是使用 “*+html,现在用IE7浏览一下,应该没有问题了。现在写一个CSS可以这样:*example color: *333; /* Moz */* html *example color: *666; /* IE6 */*+html *example color: *999; /* IE7 */那么在firefox下字体颜色显示为*333,IE6下字体颜色显示为*666,IE7下字体颜色显示为*999,他们都互不

11、干扰。 -先温习一下对于IE的box-model的破解IE box-model这个臭名昭著的bug存在于IE6/Win以前的每一只版本,这个虫子直到tantak发布了流传最为广泛的那个hack才开场被驯服IE5.X/win对box-model的解析是一样的,他们认为width包括了边框(border)和补白(padding),幸运的是这个情况在IE6中有了好转但是IE6在向后兼容的同时也包容了以前的错误,IE6其实有两个核心,在旧的页面前他仍旧表现出对错误的宽容,只有在文档中严格地加上文档类型(DOCTYPE)声明,IE6才能够承受正确的box-model所以,tantak的hack必须和正确

12、的DOCTYPE同时包含在文档中才能够正常工作Quotediv.content width:400px; /这个是错误的width,所有浏览器都读到了voice-family: ; /IE5.X/win忽略了后的内容voice-family:inherit;width:300px; /包括IE6/win在内的局部浏览器读到这句,新的数值(300px)覆盖掉了旧的htmlbody .content /htmlbody是CSS2的写法width:300px; /支持CSS2该写法的浏览器有幸读到了这一句现在回到主题,我们经常看到!important和(空格)/*/:组合在一起使用,这个写法有什么微

13、妙呢看刚刚那个写法,我这里可以提供另一种写法也能到达这样的效果Quotediv.content width:300px !important; /这个是正确的width,大局部支持!important标记的浏览器使用这里的数值width(空格)/*/:400px; /IE6/win不解析这句,所以IE6/win仍然认为width的值是300px;而IE5.X/win读到这句,新的数值(400px)覆盖掉了旧的,因为!important标记对他们不起作用htmlbody .content /htmlbody是CSS2的写法width:300px; /支持CSS2该写法的浏览器有幸读到了这一句同样

14、,这个方法仍必须依靠正确的文档类型声明才能够正常工作,原因在前面已经说过。文档类型声明就像一个开关,翻开向后兼容的未来,而错误使用的话,就是一个Pandora box-ie7.0的面世,尚且不管他是否较之ie6.0进步, ie7和ie6 之间不兼容,毫无疑问又引入了新的痛处,至少在调试的过程中,又多了一道程序以及随之而来的大量不兼容。目前,使用ie7.0的用户尚且是少数,使用ie6.0的用户仍然占据很大的比重。然而,大量通过ie6 测试的网页,在ie7.0中都显示不正常。据ie7.0官方讲解:ie7.0在IE6的根底上引入了strict模式,包含了许多有关于层叠样式表(CSS)解析与呈现的改良

15、。这些改良意在提高Internet Explorer解释层叠样式表的一致性,以到达W3C的推荐的标准,同时为开发者提供一个可以依赖的功能集合。不管官方的语言是多么动听,也不管ie7.0是不是真的W3C了,浏览器之间太多个性化的东西,太多差异,让我们无可奈何。在ie7.0下设计出的网页,ie6下面显示的几乎是不堪入目。那么,我们在设计网页的时候,在解决好ie6.0与火狐的兼容问题的同时,我们是更多的服从符合W3C一些的 ie7.0,还是对96%的ie6.0妥协这个问题其实有些多余,我们能做的,或许只有选择中庸,只有尽量调试到各个浏览器都显示正常吧。ie7.0与ie6.0的之间不兼容,目前就我知道

16、的有如下几个方面,如有遗漏或者说错了的地方,欢送在后面补充或者纠正。1. 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;。

17、但是ie7.0把这个bug给修复了,所以问题又出现了,怎么兼容 ie.7.0的同时又能兼容ie6.0和firefox3. Box Model的改变在IE7中,为了适应CSS2.1 box model修改了溢出的行为。4. ie7.0中一些CSS filter将不再可用IE7中修改了许多潜在解析错误,这些可能会阻止filter在以前的IE版本中正常工作。如:*HTML filter,下划线filter和/*/注释filter等等。5. ie7.0对很多不规X的css不再支持,对js语法要求更严格规X。 overflow:hidden这个CSS样式是大家常用到的CSS样式,但是大多数人对这个样式的

18、理解仅仅局限于隐藏溢出,而对于去除浮动这个含义不是很了解。一提到去除浮动,我们就会想到另外一个CSS样式:clear:both,我相信对于这个属性的理解大家都不成问题的。但是对于“浮动这个词到底包含什么样的含义呢.我们下面来详细的阐述一下。这是一个常用的div写法,下面我们来书写样式。大家可以在DMX中自己做试验*wai width:500px; background:*000; height:500px;*nei float:left; width:600px; height:600px; background:red;可以看到,我给nei这个id加了一个浮动,我们常规的理解是,我们允许ne

19、i这个id的div的右边出现其他的内容,只要它的宽度不超过wai这个div和nei这个div的剩余值。如果div wai中还包含其他的div,我不允许它出现在nei的右侧,我们那么用样式clear:both指定这个div,不允许它浮动在nei右侧。这些在ie6里面是正确的。但是在火狐或者其他浏览器里面,我们发现问题并非如此简单。我们发现,当nei这个div的宽度和高度都大于wai这个div的时候,wai并没有被内撑开而是依旧显示为我们指定的宽高。在我的例子中,都是500。这个时候我不理解了,我搜索了很多的资料,但是都没能理解这是为什么,直到看到别人在类似的情况下给wai这个div加了一个ove

20、rflow:hidden这个属性解决了这个问题。我们直到overflow:hidden这个属性的作用是隐藏溢出,给wai加上这个属性后,我们的nei的宽高自动的被隐藏掉了。另外,我们再做一个试验,将wai这个div的高度值删除后,我们发现,wai的高度自动的被nei这个div的高度值给撑开了。说到这里,我们再来理解一下“浮动这个词的含义。我们原先的理解是,在一个平面上的浮动,但是通过这个试验,我们发现,这不仅仅是一个平面上的浮动,而是一个立体的浮动!也就是说,当nei这个div加上浮动这个属性的时候,在显示器的侧面,它已经脱离了wai这个div,也就是说,此时的nei的宽高是多少,对于已经脱离

21、了的wai来说,都是不起作用的。打个形象的比喻就是当JJ脱离BB的时候,JJ的大小对于BB是没有撑开的作用的有点少儿不宜的感觉-_-|OK,当我们全面的理解了浮动这个词的含义的时候,我们就理解overflow:hidden这个属性中的解释,去除浮动是什么意思了。也就是说,当我们给wai这个div加上overflow:hidden这个属性的时候,其中的nei等等带浮动属性的div的在这个立体的浮动已经被去除了,就好比JJ又进入了BB内,JJ的大小自然又会影响到BB的大小。这就是overflow:hidden这个属性去除浮动的准确含义。当我们没有给wai这个div设置高度的时候,nei这个div的

22、高度,就会撑开wai这个div,而在另一个方面,我们要注意到的是,当我们给wai这个div加上一个高度值,那么无论nei这个div的高度是多少,wai这个高度都是我们设定的值。而当nei的高度超过wai的高度的时候,超出的局部就会被隐藏。这就是隐藏溢出的含义!我相信,通过我的这些文字,大家对overflow:hidden这个属性有了全新的认识。希望大家和我一样,在div+css学习中能够不断的进步! 1、DOCTYPE 影响 CSS 处理2、FF:div 设置 margin-left, margin-right 为 auto 时已经居中,IE 不行3、FF: body 设置 text-alig

23、n 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中4、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width5、FF: 支持 !important, IE 那么忽略, 可用 !important 为 FF 特别设置样式6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不

24、要换行7、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以8、FF: 加边框和背风光,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了防止底边显示错位, 假设不设 height, 可以在 menubar 中插入一个空格。9、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:divmargin:30px!important;margin:28px;注意这两个margin的顺序一定不能写反,据阿捷的说法!im

25、portant这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写margin:*px!important;10、IE5 和IE6的BOX解释不一致IE5下divwidth:300px;margin:0 10px 0 10px;div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度那么是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改divwidth:30

26、0px!important;width /*/:340px;margin:0 10px 0 10px关于这个/*/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持。11、ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义ulmargin:0;padding:0;就能解决大局部问题考前须知:1、float的div一定要闭合。例如:(其中floatA、floatB的属性已经设置为float:left;)这里的NOTfloatC并不希望继续平移,而是希望往下排。这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非floa

27、t标签,必须将float标签闭合。在之间加上这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否那么会产生异常。并且将clear这种样式定义为为如下即可:.clearclear:both;此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就到达了兼容。例如某一个wrapper如下定义: 以下为引用的内容:.colwrapperoverflow:

28、hidden;zoom:1;margin:5px auto; 以下前遇到过2、margin加倍的问题。设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;例如:相应的css为 以下为引用的内容:*IamFloatfloat:left;margin:5px;/*IE下理解为10px*/display:inline;/*IE下再理解为5px*/ 3、关于容器的包涵关系很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定

29、要用Photoshop或者Firework量取像素级的精度。4、关于高度的问题如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。似乎有时候不会自动往下撑开,不知道具体怎么回事5、最狠的手段 - !important;如果实在没有方法解决一些细节问题,可以用这个方法.FF对于!important会自动优先解析,然而IE那么会忽略。如下 以下为引用的内容:.tabd1background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/backgrou

30、nd:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */ 值得注意的是,一定要将* !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-le

31、ft:1px; 6. 消除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-

32、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 *808

33、080; 10. 滤镜 IE中支持使用滤镜,而Firefox中不支持. 11. 制止选取网页内容: 在IE中一般用js:obj.onselectstart=function()return false; 而firefox用CSS:-moz-user-select:none;常见兼容问题:模板无忧-mb5u_.MB5U_1、DOCTYPE 影响 CSS 处理MB5U2、FF:div 设置 margin-left, margin-right 为 auto 时已经居中,IE 不行.MB5U_3、FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 m

34、argin-left,margin-right) 方可居中 模板无忧-mb5u_4、FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width.MB5U_模板无忧-mb5u_5、FF: 支持 !important, IE 那么忽略, 可用 !important 为 FF 非凡设置样式Mb5U.-模板无忧6、div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要

35、控制内容不要换行MB5U7、cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以.MB5U_8、FF: 加边框和背风光,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了防止底边显示错位, 假设不设 height, 可以在 menubar 中插入一个空格。.MB5U_MB5U_9、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:MB5Udivmargin:30px!important;margin:28px;

36、模板无忧-Mb5u.注重这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:模板无忧-MB5U.-MB5u._模板无忧divmaring:30px;margin:28px.MB5U_重复定义的话按照最后一个来执行,所以不可以只写margin:*px!important; .MB5U_10、IE5 和IE6的BOX解释不一致 模板无忧-Mb5u.IE5下MB5U_MB5u._模板无忧divwidth:300px;margin:0 10px 0 10px;.MB5U_MB5u._模板无忧div的宽度会被解释为

37、300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度那么是以300px 10px(右填充) 10px(左填充)=320px来计算的。这时我们可以做如下修改 .MB5U_divwidth:300px!important;width /*/:340px;margin:0 10px 0 10pxMB5U关于这个/*/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持。MB5u._模板无忧11、ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义.MB5U_模板无忧-Mb5u.ulmar

38、gin:0;padding:0;.MB5U_就能解决大局部问题 .MB5U_注重事项:MB5U_Mb5U.-模板无忧1、float的div一定要闭合。MB5U_例如:(其中floatA、floatB的属性已经设置为float:left;).MB5U_ 模板无忧-Mb5u. 模板无忧-mb5u_Mb5U.-模板无忧模板无忧-MB5u_这里的NOTfloatC并不希望继续平移,而是希望往下排。模板无忧-mb5u_模板无忧-mb5u_这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。MB5U_在.MB5U_Mb5U.-模板无忧MB5U_MB

39、5U_之间加上.MB5U_mb5u-模板无忧MB5U_这个div一定要注重声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否那么会产生异常。.MB5U_并且将clear这种样式定义为为如下即可:.MB5U_.clear模板无忧-mb5u_clear:both; 模板无忧-MB5U.-此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;模板无忧-Mb5u.当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就到达了兼

40、容。 .MB5U_例如某一个wrapper如下定义:模板无忧-MB5U.- 以下为引用的内容:.colwrapperoverflow:hidden;zoom:1;margin:5px auto; 模板无忧-MB5U.-.MB5U_2、margin加倍的问题。 MB5u._模板无忧设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。MB5U_解决方案Mb5U.-模板无忧是在这个div里面加上display:inline; .MB5U_例如:模板无忧-MB5U.-模板无忧-MB5u_mb5u-模板无忧相应的css为MB5U_模板无忧-MB5u_ 以下为引用的内容

41、:*IamFloatfloat:left;margin:5px;/*IE下理解为10px*/display:inline;/*IE下再理解为5px*/ mb5u-模板无忧3、关于容器的包涵关系.MB5U_MB5U_很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很轻易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。 Mb5U.-模板无忧4、关于高度的问题模板无忧-mb5u_模板无忧-Mb5u.假设是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而假设是静态的内容,高度最好定好。似乎有时候不

42、会自动往下撑开,不知道具体怎么回事MB5U模板无忧-mb5u_5、最狠的手段 - !important; MB5u._模板无忧假设实在没有方法解决一些细节问题,可以用这个方法.FF对于!important会自动优先解析,然而IE那么会忽略。如下 .MB5U_ 以下为引用的内容:.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 f

43、or IE */ Mb5U.-模板无忧.MB5U_值得注重的是,一定要将* !important 这句放置在另一句之上,上面已经提过 undefined undefined CSS兼容IE与Firefox要点分析2006-10-15 14:43IE vs FF CSS 兼容要点: DOCTYPE 影响 CSS 处理 FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 F

44、F: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width FF: 支持 !important, IE 那么忽略, 可用 !important 为 FF 特别设置样式 div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 FF: 加边框和背风光

45、,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了防止底边显示错位, 假设不设 height, 可以在 menubar 中插入一个空格 XHTML+CSS兼容性解决方案小集 使用XHTMLCSS构架好处不少,但也确实存在一些问题,不管是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找 1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: divmargin:30px!important;margin:28px;注意这两个ma

46、rgin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写margin:*px!important; 2.IE5 和IE6的BOX解释不一致IE5下divwidth:300px;margin:0 10px 0 10px;div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度那么 是以300px+10px(右填充)+10px(左填充)=320px来计

47、算的。这时我们可以做如下修改 divwidth:300px!important;width /*/:340px;margin:0 10px 0 10px,关于这个/*/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!: 3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 ulmargin:0;padding:0;就能解决大局部问题 二、CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和火狐浏览器存在很大的解析差异,今天和大家谈谈火狐浏览器和IE浏览器下CSS兼容的问题,并推荐两篇不

48、错的文章给大家:网页设计师必备的火狐扩展 和 IE和火狐的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 和 width5.FF

49、: 支持 !important, IE 那么忽略, 可用 !important 为火狐特别设置样式6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行7.cursor: pointer 可以同时在 IE、火狐中显示游标手指状, hand 仅 IE 可以8.FF: 加边框和背风光,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了防止底边显示错位, 假

50、设不设 height, 可以在 menubar 中插入一个空格。9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: divmargin:30px!important;margin:28px;注意这两个margin的顺序一定不能写反,据阿捷的说法! important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样: divmaring:30px;margin:28px重复定义的话按照最后一个来执行,所以不可以只写margin:*px! important;11.ul标签在Mozilla中默认是有padding值的,而在IE中只有ma

51、rgin有值所以先定义 ulmargin:0;padding:0;就能解决大局部问题考前须知:1、float的div一定要闭合。例如:(其中floatA、floatB的属性已经设置为float:left;) 这里的NOTfloatC并不希望继续平移,而是希望往下排。这段代码在IE中毫无问题,问题出在火狐浏览器。原因是NOTfloatC并非float标签,必须将float标签闭合。在 之间加上 这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否那么会产生异常。并且将clear这种样式定义为为如下即可: .clearclea

52、r:both;此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性,用zoom:1;可以做到,这样就到达了兼容。例如某一个wrapper如下定义: .colwrapperoverflow:hidden;zoom:1;margin:5px auto;2、margin加倍的问题设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;例如:相应的css为*IamFloatfloa

53、t:left;margin:5px;/*IE下理解为10px*/display:inline;/*IE下再理解为5px*/3、关于容器的包涵关系很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。4、关于高度的问题如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)5、最狠的手段 - !important;如果实在没有方法解决一些细节问题,可以用这个方法.F

54、F对于!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 IE */值得注意的是,一定要将* !important 这句放置在另一句之上,上面已经提过IE7.0出来了,对CSS的支持又有新问题。浏览器多了,网页兼容性更差了,疲于奔命的还是我们 ,为解决IE7.0

55、的兼容问题,找来了下面这篇文章:现在我大局部都是用!important来hack,对于ie6和火狐浏览器测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!搜索了一下,找到一个针对IE7不错的hack方式就是使用“*+html,现在用IE7浏览一下,应该没有问题了。现在写一个CSS可以这样:*example color: *333; /* Moz */* html *example color: *666; /* IE6 */*+html *example color: *999; /* IE7 */那么在火狐浏览器下字体颜色显示为*333,IE6下字体颜色

56、显示为*666,IE7下字体颜色显示为*999IE浏览器和Firefox(火狐)浏览器兼容性Javascript篇1. document.form.item 问题(1)现有问题:现有代码中存在许多 document.formName.item(itemName) 这样的语句,不能在Firefox(火狐)下运行(2)解决方法:改用 document.formName.elementselementName(3)其它参见 22. 集合类对象问题(1)现有问题:现有代码中许多集合类对象取用时使用 (),IE 能承受,Firefox(火狐)不能。(2)解决方法:改用 作为下标运算。如:document

57、.forms(formName) 改为 document.formsformName。又如:document.getElementsByName(inputName)(1) 改为 document.getElementsByName(inputName)1(3)其它3. window.event(1)现有问题:使用 window.event 无法在火狐浏览器上运行(2)解决方法:火狐 的 event 只能在事件发生的现场使用,此问题暂无法解决。可以这样变通:原 代码(可在IE中运行): .function gotoSubmit() .alert(window.event); / use win

58、dow.event.新 代码(可在IE和火狐中运行): .function gotoSubmit(evt) evt = evt evt : (window.event window.event : null);.alert(evt); / use evt.此外,如果新代码中第一行不改,与老代码一样的话(即 gotoSubmit 调用没有给参数),那么仍然只能在IE中运行,但不会出错。所以,这种方案 tpl 局部仍与老代码兼容。4. HTML 对象的 id 作为对象名的问题(1)现有问题在 IE 中,HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在火狐中不能。(2)解决方法用 getElem

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!