我在网页中使用了video
元素,但DOCTYPE是HTML4。
然后,我也可以在HTML5中使用frameset
。
为什么标签使用没有限制?
答案 0 :(得分:4)
HTML旨在容忍错误。使用特定的doctype不会使浏览器拒绝发布该doctype时不存在的标记。
这就是为什么当前的HTML doctype只是<!DOCTYPE html>
,即无版本。它更准确地反映了HTML作为一种不断发展的标准。
答案 1 :(得分:2)
为什么标签使用没有限制?
为什么浏览器应该确保?如果所有浏览器只显示有效的HTML,那太好了!但随后一个浏览器出现并说:“哦,我的用户无法查看所有这些无效网站,但其中一些非常有用......无论如何,让我向他们展示这些网站!”现在,此浏览器可以使用比任何其他浏览器更多的网站你可以打赌其他浏览器会做什么。
此外,支持HTML5的用户代理无法确定页面是否在HTML 4.01或HTML5中,因为HTML 4.01 DOCTYPE在HTML5中是“obsolete permitted DOCTYPE string”。这意味着:即使您使用HTML 4.01 DOCTYPE,这些浏览器也可能会根据HTML5解释您的网页。
为什么HTML5中“过时”的HTML4元素在HTML5文档中有效?因为HTML5用户代理必须支持它们(但作者不得使用它们!):请参阅HTML5规范中的Frames,该规范定义了用户代理应对frameset
执行的操作。
答案 2 :(得分:1)
doctype
声明是旧的,只是提示浏览器如何解析页面内容。从HTML5开始,这被删除并替换为简单的通用<!doctype html>
,这对于所有当前和未来版本的标准都是相同的,因为HTML现在已经足够向后兼容以允许渐进式开发。
长话短说,现在所有现代浏览器都使用doctype决定是在“标签汤”或“怪癖”模式或“标准兼容模式”下进行解析。然后,使用该解析器找到的受支持元素与doctype无关。