你知道在不同的浏览器中处理 HTML 标签/属性有什么不同吗?例如,我曾经看到一个页面,其输入标签的最大长度字段设置为“2o”。Firefox 和 Opera 忽略“o”,并将最大长度设置为 2,而 Internet Explorer 完全忽略该字段。你知道更多吗?
(注意:因为这可能是一个列表,所以如果差异的通用名称是粗体文本,那就太好了,例如:标签属性中的不同不稳定值处理)
错误列表
Web 开发人员已经编制了一些非常全面的列表;我认为编译资源列表比复制这些列表更好。
Javascript
我同意Craig的观点 - 最好使用处理浏览器之间差异的库(以及简化命名空间、AJAX 事件处理和上下文等)来编写 Javascript。这是克雷格答案的跳转(在此页面上)。
CSS 重置
CSS 重置可以真正简化 Web 开发。它们覆盖在浏览器之间略有不同的设置,为您提供更通用的起点。我喜欢 Yahoo 的YUI Reset CSS。
如果您使用 javascript 编程,我可以给出的最佳建议是使用 javascript 库而不是尝试自己编写。这些库经过了很好的测试,更有可能遇到了极端情况。
Scriptalicious - http://script.aculo.us/
jQuery - http://jquery.com/
Microsoft AJAX - http://www.asp.net/ajax/
Dojo - http://dojotoolkit.org/
原型 - http ://www.prototypejs.org/
YUI - http://developer.yahoo.com/yui/
你知道在不同浏览器中处理 HTML 标签/属性有什么不同吗?
这个问题是否要求提供所有差异的信息,包括 DOM 和 CSS?有点大的话题。我认为 OP 是专门询问 HTML 行为,而不是所有其他的东西......
真正让我烦恼的是 IE 损坏的 document.getElementById javascript 函数 - 在大多数浏览器中,这会给你一些具有你指定的 id 的东西,IE 很乐意给你一些在 name 属性中具有值的东西,即使有文档中稍后带有您要求的 ID 的内容。
HTML 模式下 XHTML 解析不一致
HTML 解析器不是为处理 XML 而设计的。
如果 XHTML 文档以“text/html”的形式提供,并且不遵循兼容性指南,您可能会得到意想不到的结果。
空标签是问题的一种可能来源。<tag/> 和 <tag></tag> 在 XML 中是等价的。然而,HTML 解析器可以用两种方式解释它们。
例如 Opera 和 IE 将 <br></br> 视为两个 <br> 而 Firefox 和 WebKit 将 <br></br> 视为一个 <br>。
我曾经看到一个页面,其输入标签的最大长度字段设置为“2o”。
在这种特定情况下,您正在谈论无效代码。maxlength 属性不能包含字母,只能包含数字。
正如您自己所见,浏览器对无效代码的处理方式差异很大。
如果你真的在问“所有不同的浏览器在面对由于无数原因中的任何一个而被破坏的 HTML 代码时会做什么?”,那是疯狂的。
通过使用有效代码,我们可以大大减少问题空间。
因此,请使用有效的 HTML。然后,您将面临两个主要问题领域: