必须位于文件最开头且独占一行,否则浏览器触发怪异模式;仅允许和为直接子元素;须置于开头附近以防乱码。

必须写在第一行,否则浏览器会触发怪异模式,连 <code> 都可能被当成普通文本渲染。
为什么 不能省略或放错位置
它不是 HTML 标签,而是文档类型声明(doctype),作用是告诉浏览器:“请用标准模式解析这个页面”。没有它,或者写在 后面,IE 或旧版 Edge 就会降级到 Quirks Mode —— 表格宽度计算错、盒模型行为异常、甚至 flex 直接失效。
- 必须独占一行,且位于文件最开头(前面不能有任何空格、注释、BOM 字符)
- 大小写不敏感,但统一用小写
更稳妥 - HTML5 只认这一种写法,
这类老写法已淘汰
里只能有 和 两个直接子元素
这是硬性规范。如果把 <p></p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/shouce/1862" title="使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件"><img
src="https://img.php.cn/upload/manual/000/000/010/170901721079108.gif" alt="使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/shouce/1862" title="使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件" class="overflowclass">使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件</a>
<p class="overflowclass">如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更</p>
</div>
<a rel="nofollow" href="/xiazai/shouce/1862" title="使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div> 或 <div> 直接写在 <code> 下、又不在 或 里,浏览器会自动“纠错”:把那段内容塞进 ,但 DOM 结构就和你写的不一致了,JS 拿 document.documentElement.children 会漏掉预期节点。
-
里只能放元信息:比如<title></title>、<meta charset="utf-8">、<link rel="stylesheet"> -
<title></title>是的必需子元素,没它,浏览器标签页显示为空白或文件名 -
是唯一允许写可见内容的地方;里面放<script></script>也建议加defer属性,避免阻塞渲染
<meta charset="utf-8"> 必须放在 开头附近
字符编码声明越早越好。如果它出现在 <title></title> 后面,而 <title></title> 里含中文,某些浏览器会先按默认编码(如 ISO-8859-1)解析前几个字节,导致标题乱码,再切到 UTF-8 也晚了。
- 推荐顺序:
<meta charset="utf-8">→<title></title>→ 其他<meta>或<link> - 不要写成
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,冗余且 HTML5 不推荐 - 服务端返回的 HTTP Header 中若有
Content-Type: text/html; charset=gbk,会覆盖 HTML 内的charset声明——这时得改服务器配置,光调 HTML 没用
常见结构错误与调试技巧
新手最容易把标签闭合搞错,比如忘记 或多写一个 ,结果整个 内容被浏览器当成 的一部分,全部不显示。
- 用浏览器开发者工具(F12 → Elements 标签页)看实际生成的 DOM,比肉眼数标签靠谱得多
- VS Code 安装 “Auto Close Tag” 和 “Auto Rename Tag” 插件,能实时提示未闭合/不匹配
- 检查控制台是否有 “
Uncaught SyntaxError: Unexpected token '”,往往是因为 JS 文件路径错,返回了 HTML 页面而非 JS 代码,本质是结构路径配置问题










