是html文档的强制性根元素,必须存在且唯一,作为所有内容的逻辑容器;缺失时浏览器虽会自动补全,但可能触发怪异模式或导致dom异常,w3c规范明确要求其为顶层元素。

根标签 是什么,为什么必须存在
不是可选容器,而是整个 HTML 文档的强制性外层包裹。浏览器解析时,若缺失该标签,会自动补全(称为“标签修复”),但行为不可控——比如某些旧版 IE 会触发怪异模式,导致 CSS 盒模型错乱或 document.documentElement 返回 null。
它代表文档的逻辑根节点,所有其他元素(、 等)都必须直接或间接位于其内部。W3C 规范明确要求:一个合法 HTML5 文档有且仅有一个 元素,且必须是顶层元素。
的 lang 属性到底怎么写才有效
lang 是 上最常被忽略却影响深远的属性。它不只用于 SEO 或屏幕阅读器,还直接影响浏览器对引号、连字符、数字分隔符等的渲染逻辑(例如中文用「」,英文用“”)。
- 值必须是合法 BCP 47 标识符,如
zh-CN、en-US、ja;写成zh或cn是无效的 - 不要和
<meta http-equiv="Content-Language">混用,后者已被废弃,且现代浏览器完全忽略 - 若页面含多语言段落(如中英混排),应在局部元素上覆盖,例如:
<p lang="en">This is English.</p>
为什么 里不能放 <script></script> 或内联样式
的语义是“文档结构容器”,不是内容承载区。在它开始标签之后、 之前插入 <script></script>,会导致:
- 脚本执行时机不可控:此时 DOM 尚未初始化,
document.head和document.body都为null - HTML 解析器会自动将该
<script></script>移入(部分浏览器)或开头(另一些),造成跨浏览器行为不一致 - CSS 中的
:root伪类虽作用于,但样式规则仍应写在<style></style>或外部文件中,而非直接给加style属性(可读性差、无法复用)
和 <doctype html></doctype> 的关系容易搞混
<doctype html></doctype> 不是 HTML 标签,也不是 的子元素,而是一条独立的文档类型声明(markup declaration)。它的位置必须严格在第一行,且前面不能有任何字符(包括空格、BOM、注释)。
一旦 <doctype html></doctype> 缺失或格式错误(如写成 小写虽可接受,但 <code>..> 会强制触发 IE 的 Quirks 模式),浏览器就会放弃标准模式, 即便存在,也会被降级处理——此时 getBoundingClientRect() 返回值异常、Flex 布局失效、甚至 offsetHeight 计算错误。
真正需要盯住的,是这两行是否紧邻且无干扰: 必须在第 1 行第 1 列,<code> 必须紧随其后出现在第 2 行。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











