跨浏览器兼容性问题

Dar*_*der 8 html javascript browser

我发现很多人都遇到跨浏览器兼容性问题.

我的问题是为什么浏览器以不同的方式呈现html,css或js?

这是由于DOM?盒子型号?

当有W3C等标准时,为什么会出现跨浏览器兼容性问题?

主要互联网浏览器显示HTML内容的方式有什么不同吗?为什么Internet Explorer,Firefox(Mozilla),Opera可能会以不同的方式显示相同的内容?

在构建跨浏览器兼容的网站时,我应该记住什么?

Ham*_*ish 5

有很多原因或不兼容:

  • 规范通常是针对特定供应商开发的适当特征而编写的,
  • 规范有时可能写得不好,含糊不清或者没有预期特定的最终用例.
  • 浏览器供应商偶尔会因为自身原因而忽略该规范.

其他因素:

  • 很多这样的东西很难实现,让正确的工具,
  • 它还必须实现以处理格式不良的HTML,向后兼容性等.浏览器供应商有时会牺牲"互操作性"的"正确性",
  • 历史,政治和人格.


Dav*_*ulc 4

我相信有人会更好地回答这个问题,但这是一个开始:

是的,CSS 渲染应该遵守一些标准。问题是,一些浏览器编辑器(微软)并不认为正确(甚至完全地)实现规范是首要任务。甚至,当布局引擎正在努力确保兼容性时,在混合各种 CSS 属性和单元时,弄清楚如何正确渲染事物可能会变得非常麻烦(例如,参见 ACID 测试http://en. wikipedia.org/wiki/Acid3

要拥有一个跨浏览器网站,您基本上必须检查所有网站页面在访问者使用(或您支持)的浏览器中正确呈现。Selenium (seleniumhq.org) 等各种工具可以帮助解决此问题。

你基本上必须决定你要做什么

  • 为最小公分母进行设计(如果是 IE6,则无能为力)
  • 使用验证 CSS 并使用 hacks(例如clearfix)进行设计以纠正某些浏览器中的错误行为
  • 决定不支持某些浏览器(IE6 是主要候选者)
  • 嗅探浏览器并相应地调整显示(不是首选方法)

对于操作 DOM 的差异,jQuery 之类的库有很大帮助,因为它们向您隐藏了实现差异。

作为参考,最好至少在以下方面测试您的网站:

  • 基于 WebKit 的浏览器(Chrome、Safari)
  • 基于 Gecko 的浏览器 (Firefox)
  • IE
  • 歌剧