html - CSS、HTML Web 浏览器无效标记容差

标签 html browser cross-browser

我刚刚在 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/

相关文章:

javascript - 下拉菜单与其他导航项重叠

html - 绝对定位的 div 中并排放置两个 div/ul

html - 是否可以逐步加载每个 CSS 文件?

html - 如果选项仅大写且选择没有特定大小,如何仅将第一个字母大写? (CSS)

html - 在内部输入具有设置尺寸的提交边框

javascript - 跨浏览器窗口大小调整事件 - JavaScript/jQuery

javascript - 使用 iframe 预览

ios - 谷歌地图应用无法在移动设备上打开网络链接

perl - 使用 Test::WWW::Selenium 或其他方式检测操作系统对话框

html - 文本区域标签垂直对齐 : middle