讲解
<head> 里的内容不显示在页面上,却决定了页面如何被解析、被索引、被分享。其中两个 meta 标签必须最先写:<meta charset="UTF-8"> 声明字符编码,它必须出现在文档前 1024 字节内,所以习惯上紧跟 head 开头——少了它,中文在某些环境下会变乱码;<meta name="viewport" content="width=device-width, initial-scale=1.0"> 告诉手机浏览器按设备宽度布局,是移动端适配的总开关,没有它手机会把页面按桌面宽度缩小显示。
<title> 定义页面标题,显示在浏览器标签页上,也是搜索结果里那行蓝色大标题。标题要具体、唯一、控制在 30 个汉字以内:「关于我们 - 某某公司」远好于「页面1」。<meta name="description" content="..."> 是页面摘要,搜索引擎常把它显示在标题下方,一两句话概括页面价值即可。这两个字段是 SEO 的基石,SEO 章节还会展开。
head 里还常见三类引用:<link rel="stylesheet" href="css/style.css"> 引入外部样式表;<link rel="icon" href="favicon.ico"> 设置标签页小图标;<script src="main.js" defer></script> 引入脚本——defer 让脚本等文档解析完再执行,避免阻塞页面渲染。此外,分享到社交平台时显示的卡片图和标题由 Open Graph 元数据(og:title、og:image 等)控制,商业站点通常会配齐。
示例
<head>
<!-- 编码声明永远放最前 -->
<meta charset="UTF-8" />
<!-- 移动端适配开关 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HTML 教程 - 零基础系统入门 | ohmydocs</title>
<meta name="description" content="从第一个页面到语义化与现代表单,零基础系统入门 HTML。" />
<!-- 标签页图标与样式表 -->
<link rel="icon" href="/favicon.ico" />
<link rel="stylesheet" href="css/style.css" />
<!-- 社交平台分享卡片 -->
<meta property="og:title" content="HTML 教程 | ohmydocs" />
<meta property="og:image" content="https://example.com/cover.png" />
<!-- defer:等文档解析完再执行 -->
<script src="js/main.js" defer></script>
</head>
常见坑
- charset 写得太靠后:编码声明必须出现在文档最前面,放在大段注释或引用的后面可能失效,中文直接乱码。
- 漏写 viewport:手机访问时页面被整体缩小、字号小得看不清,用户两指放大才能阅读——这就是没写 viewport 的典型症状。
- 全站共用一个 title:每个页面的 title 应该独立且描述本页内容,「首页」两个字无法吸引搜索点击。
- script 不加 defer 放在 head:脚本一加载就执行,此时 body 还没解析,操作 DOM 会拿到 null,还会阻塞渲染。要么 defer,要么把 script 挪到 body 末尾。
小结
head 的两大纪律:charset 最前、viewport 必备;title 和 description 是搜索曝光的门户;样式、图标、脚本(记得 defer)都在这里引用。下一章回到 body,学习标题与段落这两个最基础的文本元素。