浏览器之间的HTML差异

时间:2008-08-17 12:02:24

标签: html browser

您知道在不同浏览器中处理HTML标记/属性有什么不同吗?例如,我曾经看过一个带有输入标签的页面,其maxlength字段设置为“2o”。 Firefox和Opera忽略“o”,并将最大长度设置为2,而Internet Explorer完全忽略该字段。你知道了吗?

(注意:看到这可能是一个列表,如果差异的一般名称是粗体文本,那将是很好的,例如:标签属性中不同的不稳定值处理

7 个答案:

答案 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。然后,您将面临两个主要问题:

  • 浏览器错误 - 浏览器如何遵循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;。