符合W3C规范的HTML5骨架需五处核心要素:1.首行<!DOCTYPE html>;2.<html lang="zh-CN">带BCP 47标准语言属性;3.<meta charset="UTF-8">紧接<head>内第二行;4.语义标签正确嵌套(如<main>不嵌套于<header>);5.<section>必须含标题。

写一个符合 W3C 规范的 HTML5 骨架,关键不是“多写”,而是“写对位置、用对标签、设对属性”。只要五处核心要素全部到位,验证器基本不会报错。
必须放在第一行的 DOCTYPE 声明
这一行必须是文件最开头、第一个字符,不能有空格、BOM、注释或 PHP 输出:
-
正确写法:
<!DOCTYPE html>(全小写,无空格,独占首行) -
错误写法:
<!-- 注释 --><!DOCTYPE html>、<?php echo '<!DOCTYPE html>'; ?>、<!doctype HTML> - 写错会导致浏览器进入“怪异模式”,
document.compatMode返回"BackCompat",Flex、margin、盒模型全乱
根元素必须带合法 lang 属性
<html> 标签不能裸奔,必须声明语言,且值要精确到地区:
-
推荐写法:
<html lang="zh-CN">(大陆简体)、<html lang="en-US">(美式英文) -
禁止写法:
lang="zh"、lang="cn"、lang="ch"—— 这些不符合 BCP 47 标准,屏幕阅读器和搜索引擎无法准确识别 - 局部切换语言可用
<p lang="en">Hello</p>,但不要滥用
meta charset 必须紧接在 head 开头
字符编码声明必须出现在 <head> 内的第二行(即 <html> 后、<title> 前),否则中文、emoji 一出现就乱码:
立即学习“前端免费学习笔记(深入)”;
-
正确位置:
<head><meta charset="UTF-8"><title>…</title></head> -
禁止写法:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">(HTML5 中冗余) - 编辑器保存时选 “UTF-8 without BOM”,VS Code 默认可能带 BOM,需手动关闭
语义化结构区域不可嵌套错位
HTML5 的语义标签不是装饰,而是给辅助技术与搜索引擎“指路”的锚点:
-
<main>全局只能有一个,且不能嵌套在<header>、<footer>、<nav>或<aside>内部 -
<section>必须包含标题(<h1>–<h6>),否则语义不成立 -
<nav>只包裹导航链接集合,按钮、搜索框、登录入口别塞进去 - 避免通篇
<div class="header">这类写法,直接用<header>



















