IE6、IE7、IE8的CSS、JS兼容

Internet Explorer 6中查看使用 Microsoft JScript
的网页,可能会遇到web浏览器速度较慢的性能问题。原因是如果js脚本同时创建大量变量,jscript引擎执行垃圾收集算法时会监视脚本中变量分配的
数量、脚本中使用的文字值的数量和脚本中分配的字符串值的总大小,如果超过这些值的阈值,就会发生垃圾收集,垃圾收集进程会中断正在运行的脚本。因此,这
些运行中的脚本将被挂起,直至垃圾收集完成为止。

IE6 IE7
IE8 CSS
JS 方面的区别
:

1、IE8中的css中关于width或是height中如果使用像素形式作为参数时,参数必须是带“px”的,而且此参数必须是大于0的,而在IE6和IE7中是支持不带“px”参数的,而且参数是可以为一个负数。

2、如:style=height:180px\\0;只有IE8能识别,style=height:180px\\9,IE都能识别。

2、IE8中的css中“border-style:outset ;”是没有效果的。

3、IE8中的无序列表之间的距离要比IE6和IE7大的多。

4、IE6能识别*,但不能识别!important,IE7能识别*也能识别!important。

5、IE6支持下划线,IE7不支持下划线。

6、在IE8中,一个Iframe中取event.x的值不是Iframe中的相对x坐标,而是最外层的window的x坐标,但是event.y 却是取的是
Iframe中的相对y坐标。而在IE6和IE7中,event.x和event.y却得的都是所在Iframe中的相对坐标,可以用
event.clinetX代替。

7、IE8中的javascript中的function对象例如:

function a(){alert(“helloworld”);}

var fun = new function(‘’,’helloworld’);

alert(fun);

此时返回的值为function anonymous(){function a(){alert(“helloworld”)}},
而在IE6和IE7中返回的值为function
anonymous(){alert("helloworld")},也就是说当Function的第二个参数如果是一个函数时,IE8对此参数作用的是
整个函数的代码,而IE6和IE7则是对此参数起作用的是函数的内部代码(不包括 “function a(){”和“}”的函数头和尾)。

8、在ie6中,使用window.status ="
欢迎光临我的博客!!!",就能在状态栏显示这么一行字,但在IE7中,IE7的安全性设置中,默认是不允许脚本更新状态栏的.

9、IE8会把 IE6,7,8
css 进行测试:

测试代码:样式代码: p {color:#f00;} xhtml
代码:  

 文字










































































 

IE6

IE7

IE8

备注

p{_color:red}

×

×

IE6 专用

*html   p{color:#red;}

×

×

IE6 专用

p{+color:red}

×

IE6,7 专用

p{*color:red}

×

IE6,7 专用

*html   p{color:red;}

×

IE6,7 专用

p{*+color: red}

×

×

IE7 专用

Body> p{ color: red }

×

屏蔽 IE6

/*\\*//*/p{+color:red}/**/

×

×

IE8 专用

p{/*/*/color;/**/}

×

屏蔽 IE8

p{color:red!important}

p{color:red}

都能用

html>/**/body .head{color:#red;}

×

×

只对 IE8

对于 IE8
js 新增的功能 :

1、 IE8开始支持一些新的W3C规格,其中多了querySelector和querySelectorAll两个函数

2、 IE8 引入XDomainRequest跨站数据获取功能。
这是一个非常有趣的进行跨站数据获取的功能,不过它与Firefox 3中的跨站
XMLHttpRequest的工作原理不太一样。它的跨域并不是无限制的。需要服务端返回http
header中带有XDomainRequestAllowed=1才可以跨域,否则是不成功的。XMLRequest
不能跨站一直都是多子域服务器的硬伤。使得很多情况不得不考虑最原始的动态script和JSON的方式。不过IE8团队有意解决跨站访问数据的问题,这
是IE8的一个进步。另外,IE8下的XMLHttpRequest增加了一个很重要的属性
timeout和ontimeout方法,它在对程序进行优化时极其重要。

3、 getElementById可以通过id来返回对象。getAttribute("checked")
现在返回“checked”而不是true。动态创建(或修改)的单选按钮现在可以被选择了。

支持更多对HTML5的功能:

1、 window.location.hash。这个功能已经被多数浏览器支持的非常好。在IE8标准模式中将window.location.hash中的
更改作为导航,并保存先前文档的URL,可以像在Ajax应用中模仿“后退”按钮效果。IE8中对它进行了改良,可以广播这个hashchanged时 间。

2、 DOM存储。通过这个功能,数据可以持续保存在本地,它将取代原始的cookie存DOM存储。

3、 postMessage。IE8现在支持跨文件消息通讯(Cross-Document
Messaging-XDM)!通过onmessage事件和postMessage方法,两个来自不同域的网页可以进行通讯。目前IE8、Opera
9、Firefox 3和WebKit nightlies版均支持这个功能,也就是说,该功能几乎已被所有最新浏览器支持。

4、 Offline Events。在IE
8中拥有一些离线事件来检测网络的中断,通过它我们可以编写精彩的离线Ajax应用。目前来看支持这一功能的浏览器包括Firefox3和IE8。

用firefox或者chrome一登陆最小系统就报480分钟超时错误

IE6 Bugs

1 、不支持用样式设置 <abbr> 元素

2 、不支持以连字符和下划线开头的 class 和 ID 名

3 、 <select> 元素总是出现在堆叠最上面,而无视 z-index 值

4 、如果锚点的伪类没有使用正确的顺序 ( :link , :visited , :hover ) ,:hover 伪类将无效

5 、一个属性的 !important 声明会被同一规则中同一属性的没有使用 !important 的第二个声明覆盖。

6、         height 表现类似于
min-height , width 表现类似于 min-width ,左右 margin 双倍

7、         圆点边框 (dotted)
看起来像虚线边框 (dashed)

8、        
text-decoration 的 line-through 值在文字上看起来比别的浏览器要高一些

9 、有序列表如果有一个固定结构 (haslayout 为 true ,不能设置 li 的高度 / 宽度 /zoom 等激活
haslayout 的值 ) ,序号就不会增加,而是保持为 1

10、      列表元素不支持 list-style-type
的所有可用的值

11、      如果列表条目浮动,指定的 list-style-image
将不会显示

12、      不完全支持 @font-face

13、      某些选择器会错误的匹配注释和文档声明

14、      如果一个 ID 选择器结合一个类选择器不匹配,同样的 ID
选择器结合不同的类选择器也将被当作不匹配。

IE7 bugs

1 有序列表如果有一个固定结构 (haslayout 为
true ,不能设置 li 的高度 / 宽度 /zoom 等激活 haslayout 的值 ) ,序号就不会增加,而是保持为 1

2、         列表元素不支持
list-style-type 的所有可用的值

3 、如果列表条目浮动,指定的 list-style-image 将不会显示

4 、不完全支持 @font-face

5 、某些选择器会错误的匹配注释和文档声明

IE8 新增的 javascript 函数:可参考 http://blog.csdn.net/WinGeek/archive/2009/02/26/3937909.aspx

原文参考:http://www.cnblogs.com/hoojo/archive/2011/01/13/1934373.html

时间: 2024-10-07 10:13:11

IE6、IE7、IE8的CSS、JS兼容的相关文章

IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决的方法

今天在调试一个页面的时候遇到一个问题,在IE9下执行得非常好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,依照经验,应该是定义对象的时候最后一个属性末尾跟了逗号,但检查一遍后没发现有这样的情况,后来细致看了一下报错的位置,发现有定义json对象属性时,属性名没实用引號括起来,于是加了上去再试,问题攻克了. 综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象

IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决办法

今天在调试一个页面的时候遇到一个问题,在IE9下运行得很好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,按照经验,应该是定义对象的时候最后一个属性末尾跟了逗号,但检查一遍后没发现有这种情况,后来仔细看了一下报错的位置,发现有定义json对象属性时,属性名没有用引号括起来,于是加了上去再试,问题解决了. 综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象字面

IE5,IE6,IE7,IE8的css兼容性列表[转自MSDN]

CSS 2.1:   IE 5.0 IE 5.5 IE 6.0 IE 7.0 IE8 Beta 1 IE8 Beta 2 IE 8.0 @charset No Yes Yes Yes Yes Yes Yes @import Yes Yes Yes Yes Yes Yes Yes @media No Yes Yes Yes Yes Yes Yes @page No Yes Yes Yes Yes No* Yes CSS 3:   IE 5.0 IE 5.5 IE 6.0 IE 7.0 IE8 Be

一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 http://www.jb51.net/css/383986.html

在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 复制代码 代码如下: <!Doctype html> <html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.com/2010/xbdml>; <head> <meta http-equiv=Content-Type conten

ie6,ie7,ie8 css bug兼容解决记录

ie6,ie7,ie8 css bug兼容解决记录 转载自:ie6,ie7,ie8 css bug兼容解决记录 - 前端开发 断断续续的在开发过程中收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决 ,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着

兼容IE6/IE7/IE8/FireFox的css hack

.color{ background-color: #CC00FF; background-color: #FF00009; *background-color: #0066FF; _background-color: #009933; } **记住上面得样式解释为顺序是 ff.ie8.ie7.ie6 ** 显示的结果: 用火狐浏览,颜色是紫色 用 IE8 浏览,颜色是红色 用 IE7 浏览,颜色是蓝色 用 IE6 浏览,颜色是绿色 IE8 最新css hack: "" 例:"

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法(非原创)

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 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 和 wi

{转}div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法

div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法 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 和 wi

[转]CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法

CSS完美兼容IE6/IE7/IE8/IE9/IE10的通用方法 2013-12-12  By 奥夫 关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对… 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !impo

IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表

浏览器兼容问题一直是前段开发工程师比较头痛的问题,熟悉了里面的规则也就变得简单了,这里有一份资料可以分享给大家,大家平时开发过程中遵循这个规律的话,会变得轻松多了: 各浏览器CSS hack兼容表:   IE6 IE7 IE8 Firefox Chrome Safari !important   Y   Y     _ Y           * Y Y         *+   Y         \9 Y Y Y       \0     Y       nth-of-type(1)