转载
1,浏览器兼容性问题综述 -- 正确的认识浏览器兼容性问题
http://topic.csdn.net/u/20100701/14/ED652911-7128-48F6-B8E0-1F2D1B3ABD47.html
2,JavaScript js 兼容浏览器问题 兼容FireFox(FF)、IE的解决方法
http://blog.csdn.net/IBM_hoojo/archive/2010/07/02/5708440.aspx
W3C对标准的推进,Firefox,Chrome,Safari,Opera的出现,结束了IE雄霸天下的日子。
然而,这对开发者来说,是好事,也是坏事。
说它是好事,是因为浏览器厂商为了取得更多的市场份额,会促使各浏览器更符合W3C标准,而得到更好的兼容性,并且,不同浏览器的扩展功能(例如 -moz,-webkit开头的样式),对W3C标准也是个推进;说它是坏事,因为,多个浏览器同时存在,这些浏览器在处理一个相同的页面时,表现有时会有差异。这种差异可能很小,甚至不会被注意到;也可能很大,甚至造成在某个浏览器下无法正常浏览。我们把引起这些差异的问题统称为“浏览器兼容性问题”。而正是这些“浏览器兼容性问题”,无形中给我们的开发增加了不少难度。
从浏览器内核的角度 来看,浏览器兼容性问题可分为以下三类:
1. 渲染相关:和样式相关的问题,即体现在布局效果上的问题。
2. 脚本相关:和脚本相关的问题,包括JavaScript和DOM、BOM方面的问题。对于某些浏览器的功能方面的特性,也属于这一类。
3. 其他类别:除以上两类问题外的功能性问题,一般是浏览器自身提供的功能,在内核层之上的。
例如下面的页面,是一个渲染相关的问题:
在各个浏览器中都表现的不同,这就属于兼容性问题。
造成浏览器兼容性问题的根本原因就是浏览器各浏览器使用了不同的内核,并且它们处理同一件事情的时候思路不同。
现今常见的浏览器及其排版引擎(又称渲染引擎)及脚本引擎,如下:
而造成浏览器兼容性问题的常见原因则是设计师写出了不规范的代码,不规范的代码会使不兼容现象更加突出。
例如:
不规则的嵌套:
-
HTML code
-
< div > < li > 新闻标题一 </ li > < li > 新闻标题一 </ li > < li > 新闻标题一 </ li > </ div >
DIV 中直接嵌套 LI 元素是不合标准的,LI 应该处于 UL 内。此类问题常见的还有 P 中嵌套 DIV, TABLE等元素。
不规范的DOM接口和属性设置:
-
JScript code
-
document.all.a_name.style.top = 35 ;
上面代码中top的值&#