我刚刚在 safari 中打开了一个网页,我看到了什么?整篇文章都是绿色的?但是我只将标题设为绿色,所以常规文本应该是黑色的?然后我想:好吧,我在 Firefox 中编写了这个站点。起初我以为这是 Safari 的一个错误解释,但我再次检查我的代码,我看到了这个:
<h3>Caption<h3>
<p>BlacktextblacktextBlacktextblacktextBlacktextblacktext</p>
我还没有关闭h3标签。
所以 Safari 正确地解释了我的代码,而 Firefox 容忍了这个错字?在 Firefox 中,它按应有的方式工作:绿色标题黑色文本; Safari 说:“不不!你忘了关闭 h3?好吧,现在一切都是绿色的,处理它。”
我的问题是:主流浏览器的容忍度如何?浏览器可以容忍什么(拼写错误、无效等)?
最佳答案
实际上,两种浏览器都“容忍”了您的无效标记(无效是因为您有两个未关闭的 <h3>
标记),它们只是以不同的方式做到了。 Gecko (Firefox) 决定 h3 不能包含 p 并在开始 p 之前将它们都关闭。另一方面,WebKit(Safari、Chrome)可能会在文档主体的末尾关闭它们。
所有浏览器都会尽最大努力从 HTML 文档的最大困惑中恢复。他们的“容忍度”水平或多或少是相等的,但他们之间的结果会有所不同。最好不要依赖浏览器纠错。使用 w3c validator以确保您的代码有效并为其提供在所有浏览器中正确解析的最佳机会。
关于html - CSS、HTML Web 浏览器无效标记容差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4254216/