2013-07-04 90 views
0

javascript和css在不同浏览器中存在如此多的不兼容问题的主要原因是什么?不同浏览器中的Javascript和CSS不兼容问题

例子: 的JavaScript和CSS在网页浏览器中可以正常使用,但有不同的结果,在Web浏览器B.

为什么W3C允许在每个网页浏览器不同的标准?

+0

一开始,蒂姆伯纳斯李先生创建了万维网,它很好... –

回答

1

W3C没有权力在浏览器实现中允许或禁止任何操作。不同浏览器中的不同功能/错误/功能是不同公司在实现浏览器时做出自己选择的产物。 W3C不能控制这些公司做什么。

W3C试图协调标准工作,以便浏览器实现者有希望选择遵循标准。

当您在不同的浏览器中看到不同的行为时,首先要查找的是您的错误实现。您可能在自己的HTML或CSS或JavaScript中出现错误,一些浏览器可以容忍,而另一些则不会。或者,您可能正在使用某些结构,这些结构并未被标准真正涵盖,或者处于标准描述的边缘。或者,您可能正在使用某种特定浏览器自己的附加功能,并且在各种浏览器中未得到广泛支持。

例如,有许多其他浏览器不支持的特定于IE的功能(IE 9和更早的版本比IE 10更糟糕)。

这里有一些问题,可能会导致跨浏览器问题的部分列表:

  1. 错误在你的HTML/CSS/JavaScript的只能由某些浏览器的耐受性。
  2. 标准仍在最终确定中,因此在不同浏览器中的实现(如CSS3现在)略有不同。
  3. HTML设计强调浏览器围绕标准描述的限制。
  4. 使用第三方插件,可能在不同的浏览器中有略微不同的实现。
  5. 仅在部分浏览器中部分实现的标准。
  6. 在浏览器中使用专有或实验性功能。
  7. 浏览器实现者做出的不同设计决定,其标准不完全清晰,或者对标准的含义有不同的解释。
  8. 浏览器实现中的错误。
+0

那些浏览器厂商不同意他们的功能实现使跨浏览器网页或polyfills需要存在的东西需要存在。但是,我不记得IE9和IE10中的特定功能比其他浏览器没有。你能说出一个吗? – a0viedo

+0

@ a0viedo - IE9具有特定于IE的过滤器/转换,并在IE10移至CSS3时在IE10中删除。 IE仍然支持ActiveX。 IE还有其他特定于Microsoft的扩展,如条件指令'<! - [if lte IE 9]>'等等。名单很长。 – jfriend00

+0

这不是在HTML草稿的任何版本中指定的,也不是由W3C处理的。将标准与特定浏览器供应商实施分开是一件好事。 – a0viedo