Javascript 跨浏览器兼容性问题
我发现很多人都有跨浏览器兼容性问题 我的问题是为什么浏览器呈现html、css或js的方式不同 是因为DOM吗?盒子型号? 当有来自W3C等的标准时,为什么会出现跨浏览器兼容性问题 主要的互联网浏览器显示HTML内容的方式有什么不同吗?为什么Internet Explorer、Firefox(Mozilla)、Opera可能会以不同方式显示相同的内容?Javascript 跨浏览器兼容性问题,javascript,html,browser,Javascript,Html,Browser,我发现很多人都有跨浏览器兼容性问题 我的问题是为什么浏览器呈现html、css或js的方式不同 是因为DOM吗?盒子型号? 当有来自W3C等的标准时,为什么会出现跨浏览器兼容性问题 主要的互联网浏览器显示HTML内容的方式有什么不同吗?为什么Internet Explorer、Firefox(Mozilla)、Opera可能会以不同方式显示相同的内容? 在构建跨浏览器兼容的网站时,我应该记住什么?有很多原因或不兼容: 规范通常是针对特定供应商开发的适当功能而编写的 规范有时可能写得不好、模棱两
在构建跨浏览器兼容的网站时,我应该记住什么?有很多原因或不兼容:
- 规范通常是针对特定供应商开发的适当功能而编写的
- 规范有时可能写得不好、模棱两可或没有在预期特定的最终用例时编写
- 浏览器供应商出于自身原因偶尔会忽略该规范
- 很多东西很难实施,更不用说正确实施了
- 它还必须实现以处理格式不正确的HTML、向后兼容性等。浏览器供应商有时会牺牲“正确性”来实现“互操作性”
- 历史、政治和人物
试着从半满的角度来看待它:成千上万的不同的人编写了数百万行代码,在许多不同的平台上做着完全不同的事情,有着许多不同的目标和重点,但最终所有人都呈现出几乎相同的HTML标记,往往只有微小的、几乎不相关的差异。当然,每个引擎中都有弱点,如果你碰巧一次击中了所有弱点,你的网站将以不同的方式在每个浏览器中崩溃。但这是可以通过一点经验来避免的。我相信有人会更好地回答这个问题,但这是一个开始: 是的,在CSS呈现方面应该遵守一些标准。问题是,一些浏览器编辑(咳嗽微软咳嗽)不认为优先执行正确的规范(甚至完全)。甚至,当布局引擎试图确保兼容性时,在混合各种CSS属性和单元时,要弄清楚如何正确地呈现内容可能会变得非常棘手(例如,请参见ACID测试) 要创建一个跨浏览器的网站,您基本上必须检查您的网站的所有页面在访问者使用的浏览器(或您支持的浏览器)中是否正确呈现。各种工具,如seleniumhq.org,可以帮助实现这一点 你基本上必须决定你要做什么
- 为最低公分母而设计(如果是IE6,你就无能为力)
- 使用验证CSS和使用黑客(例如clearfix)来纠正某些浏览器中的错误行为进行设计
- 决定不支持某些浏览器(IE6是首选浏览器)
- 嗅探浏览器并相应调整显示(不是首选方式)
- 基于WebKit的浏览器(Chrome、Safari)
- 基于Gecko的浏览器(Firefox)
- 即
- 歌剧院
- 哈米什所说的一切,以及他提到的另一个主要问题是浏览器如何处理错误的HTML。例如,在IE4/NS4的时代,元素是非常有问题的。如果您没有关闭标签,IE4将为您关闭它。Netscape 4会默默地完全忽略这个表
这在今天仍然是正确的,一个浏览器将以不同的方式修复不正确的标记。是的,标记应该被更正,但是浏览器会尽力呈现一些东西。这是伟大的浏览器战争的后果。现在Netscape通信公司已是一片废墟,但竞争对手为了超越对方而制造的怪癖仍然存在于浏览器的代码库中,人们仍然在开发团队中。考虑看克劳福德,他给出了一些突出的主题。(您将希望保存文件,而不是流式传输)这并不能真正解释有关问题的任何内容。这可能只是一个问题的部分答案@user177883:Hamish刚刚给了你一个关于你所有问题的大部分原因的概述