我刚刚在safari中打开了一个网页,我看到了什么?整个文字是绿色的?但是我只将字幕设为绿色,所以常规文字应该是黑色的?然后我想:我在Firefox中编写了这个网站。起初我认为这是Safari的一个不好的解释,但我再次审查了我的代码,我看到了这个:
<h3>Caption<h3>
<p>BlacktextblacktextBlacktextblacktextBlacktextblacktext</p>
我还没有关闭h3标签。
因此,Safari正确解释了我的代码,Firefox容忍了这个错误?在Firefox中它可以正常工作:绿色标题黑色文本; Safari说:“不,不!你忘了关闭h3?现在一切都是绿色的,处理它。”
我的问题是:主流浏览器有多宽容?浏览器容忍什么(拼写错误,残疾人等)?
答案 0 :(得分:6)
实际上,两个浏览器都“容忍”了您的无效标记(因为您有两个未公开的<h3>
标记而无效),他们只是以不同的方式这样做。 Gecko(Firefox)认为 h3 不能包含 p 并在开始 p 之前关闭它们。另一方面,WebKit(Safari,Chrome)可能会在文档正文的末尾关闭它们。
所有浏览器都会尽力从HTML文档的最大混乱中恢复。他们的“容忍度”水平或多或少相等,但结果会有所不同。最好不要依赖浏览器纠错。使用w3c validator确保您的代码有效,并为其提供在所有浏览器中正确解析的最佳机会。
答案 1 :(得分:2)
浏览器对错误没有任何容忍度,但他们会尽力纠正不正确的代码,以便可以呈现。
虽然有关如何呈现正确代码的明确标准,但在如何解释错误代码方面根本没有标准。任何浏览器都可以使用自己的计划来了解如何充分利用这种情况。
这两种浏览器都无法正确解释代码,因为代码本身并不正确。因此,两个浏览器都没有做错任何事情,他们只是以不同的方式做事。