浏览器如何插入HTML和标题?

浏览器如何插入HTML和标题?,html,webstorm,Html,Webstorm,我在Webstorm my-file.HTML中创建了一个HTML文件 <body> hi </body> 你好 我注意到浏览器插入了html和head标记 浏览器是如何以及为什么插入的?现代浏览器遵循中描述的解析算法,该算法对错误具有高度容忍度。它将自动插入所需的标记、缺少的结束标记等,如果它们丢失了。例如: 标题 帕拉 解析为以下DOM元素: 标题 帕拉 演示 const textarea=document.querySelector('text

我在Webstorm my-file.HTML中创建了一个HTML文件

<body>
    hi
</body>

你好
我注意到浏览器插入了html和head标记


浏览器是如何以及为什么插入的?

现代浏览器遵循中描述的解析算法,该算法对错误具有高度容忍度。它将自动插入所需的标记、缺少的结束标记等,如果它们丢失了。例如:

标题
帕拉
解析为以下DOM元素:

标题
帕拉

演示
const textarea=document.querySelector('textarea')
常数更新=()=>{
const parser=new DOMParser()
const doc=parser.parseFromString(textarea.value,'text/html')
document.querySelector('pre').textContent=
doc.documentElement.outerHTML
}
textarea.addEventListener('input',update)
update()
textarea{宽度:100%;最小高度:100px;}
编辑我!
帕拉

HTML页面应该有doctype、
HTML
元素、
head
元素和
body
元素。doctype在技术上是可选的,但应该始终包含它以防止不必要的行为(请参阅)。那么,如果我没有指定它,chrome是否只是代表我插入它?是的,一个好的浏览器会尝试原谅许多错误,例如不正确嵌套或未关闭的标记。为什么主要是为了改善用户的体验。how不太适合这个场地。