为什么<head>标记内的文本呈现?

时间:2019-09-29 16:23:03

标签: html

如果我在HTML页面的<head>标记中放入一些文本,则这些文本将由Chrome或Firefox等流行的浏览器呈现(请参见下面的MWE)。这是预期的行为吗?

<!DOCTYPE html>
<html lang="en">
   <head> Foo Bar </head>
</html>

2 个答案:

答案 0 :(得分:3)

不允许在head元素内使用文本节点,但是end标签是可选的,因此文本节点隐式结束了head元素并开始了正文。

head元素的结束标签没有匹配的开始标签,因此将其作为错误丢弃。

这是预期的错误恢复行为。

使用标记验证器。

答案 1 :(得分:2)

作为quentin答案的补充-很好的认识到浏览器会随意处理html错误。他们尝试尽可能地渲染。这一方面可以帮助开发人员,另一方面可以改善用户体验。这样一来,某个地方的单个错误就不会阻止整个文档的呈现(或显示严重警告)-最终用户通常会更欣赏。

有趣的(背景)信息:

Tag soup

Error tolerance in browsers