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