Head
<head> 存放元数据:字符编码、标题、样式与脚本引用、SEO 与社交分享标签等;内容一般不在页面正文中直接显示(<title> 显示在浏览器标签栏)。HTML 基础见 简介,可见结构见 标签。
<head> 内常见子元素:<title>、<meta>、<link>、<style>、<script>、<noscript>、<base>(少用)。
各标签职责
<title>(必需)
- 浏览器标签页标题、书签默认名称。
- 搜索引擎结果中的可点击标题(与
meta description配合)。
<meta>
提供文档级元信息,常见属性:
| 写法 | 作用 |
|---|---|
<meta charset="UTF-8"> | 字符编码;应尽早出现,避免乱码 |
<meta name="viewport" content="width=device-width, initial-scale=1"> | 移动端布局视口;详见 响应式 viewport |
<meta name="description" content="..."> | 搜索结果摘要(不保证原样展示) |
<meta name="robots" content="noindex, nofollow"> | 爬虫索引提示 |
<meta name="theme-color" content="#3367d6"> | 移动端浏览器 UI 主题色 |
<meta http-equiv="Content-Security-Policy" content="..."> | 内容安全策略(CSP) |
property="og:*" | Open Graph 社交分享 |
name="twitter:*" | Twitter / X Card |
meta name="keywords":主流搜索引擎已不再依赖该字段排名;可省略,勿堆砌关键词。
其他常见 meta:
| 写法 | 作用 |
|---|---|
<meta name="author" content="Jane Doe"> | 标注作者,供部分工具与 CMS 读取 |
<meta name="generator" content="Nuxt"> | 标注生成该页面的框架/工具,多为自动注入 |
<meta name="color-scheme" content="light dark"> | 提示浏览器该页面同时支持亮/暗色配色,配合 CSS prefers-color-scheme |
<meta name="referrer" content="strict-origin-when-cross-origin"> | 控制跳转外链时携带的 Referrer 信息,兼顾统计与隐私 |
<link>
关联外部资源,通过 rel 区分关系:
rel | 用途 |
|---|---|
stylesheet | 外部 CSS |
icon | 站点图标(favicon) |
canonical | 规范 URL,避免重复内容 |
alternate | 备用资源(如 hreflang 多语言、type="application/rss+xml") |
preload / prefetch / preconnect / dns-prefetch | 资源提示(见下文) |
manifest | Web App Manifest(PWA) |
字体预加载须加 crossorigin,与 字体优化 一致。
<style>
文档内嵌 CSS。大型项目更推荐外部样式表,便于缓存。
<script>
加载或内联 JavaScript。
| 属性 | 行为 |
|---|---|
(默认,位于 <head>) | 下载并阻塞 HTML 解析直至执行完毕 |
defer | 异步下载,DOM 解析完成后按顺序执行 |
defer + type="module" | ES 模块默认 defer |
async | 下载完成后尽快执行,顺序不保证 |
实践:非关键脚本用 defer 放 </body> 前或 head 带 defer;第三方统计等可用 async。
<noscript>
在脚本未执行时展示替代内容(如提示启用 JavaScript);不能替代无障碍设计。
<base>(谨慎)
为页内所有相对 URL 指定基准 URL 与默认 target。每文档最多一个,且应放在 head 靠前;误用会导致链接全部指向错误域名。
推荐最小 head
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>页面标题</title>
<meta name="description" content="一句话描述本页内容" />
<link rel="stylesheet" href="/assets/main.css" />
<link rel="icon" href="/favicon.ico" sizes="any" />
<script src="/assets/app.js" defer></script>
</head>
<body></body>
</html>
完整示例(SEO、社交、性能)
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>HTML Head 元素示例</title>
<meta name="description" content="演示 head 中编码、视口、样式、脚本与 Open Graph 的写法。" />
<link rel="canonical" href="https://www.example.com/demo" />
<link rel="stylesheet" href="styles.css" />
<link rel="icon" href="/favicon.ico" />
<link rel="preload" href="/fonts/ui.woff2" as="font" type="font/woff2" crossorigin />
<meta property="og:title" content="HTML Head 元素示例" />
<meta property="og:description" content="演示 head 常用标签。" />
<meta property="og:image" content="https://www.example.com/og.png" />
<meta property="og:url" content="https://www.example.com/demo" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="theme-color" content="#4285f4" />
<script src="app.js" defer></script>
</head>
以下项仅面向需兼容旧版 IE 的遗留系统,现代项目可删除:
<!-- 已废弃的 IE 文档模式提示 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
资源提示(性能)
<link rel="preconnect" href="https://cdn.example.com" crossorigin />
<link rel="dns-prefetch" href="https://cdn.example.com" />
<link rel="preload" href="/critical.css" as="style" />
<link rel="preload" href="/hero.webp" as="image" />
<link rel="modulepreload" href="/chunks/vendor.js" />
<link rel="prefetch" href="/next-page-data.json" />
rel | 说明 |
|---|---|
preconnect | 提前完成 DNS + TCP + TLS |
dns-prefetch | 仅 DNS 解析(代价低于 preconnect) |
preload | 当前导航很快需要的资源 |
prefetch | 后续导航可能用到的低优先级资源 |
安全与 PWA
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; img-src 'self' https:; script-src 'self'"
/>
<link rel="manifest" href="/manifest.webmanifest" />
CSP 宜由服务端响应头统一配置;meta 方式适合静态页演示。
移动端补充
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#4285f4" />
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
- 勿使用
user-scalable=no或maximum-scale=1阻止缩放(违背 WCAG 对放大阅读的要求)。 format-detection可关闭 iOS 对电话号码的自动链接:content="telephone=no"。
SEO 要点(准确预期)
| 手段 | 说明 |
|---|---|
唯一、准确的 <title> | 影响最大之一 |
meta description | 可能被用作摘要,非排名直接因素 |
link rel="canonical" | 合并重复 URL |
hreflang + alternate | 多语言版本互指 |
| 语义 HTML 与可访问标题结构 | 见 标签 |
meta refresh 跳转不利于 SEO 与可用性,优先使用 HTTP 重定向或正常链接。
多语言站点:hreflang
多语言/多地区站点应在每个语言版本的 head 中互相声明所有语言变体,帮助搜索引擎向用户展示匹配语言的版本:
<link rel="alternate" hreflang="zh-CN" href="https://www.example.com/zh/" />
<link rel="alternate" hreflang="en" href="https://www.example.com/en/" />
<link rel="alternate" hreflang="x-default" href="https://www.example.com/" />
hreflang值使用 BCP 47 语言标签(如zh-CN、en-US)。- 每个语言版本页面都要包含完整的一组
hreflang链接(包括指向自身),互相缺失会导致搜索引擎判定不一致。 x-default用于声明找不到匹配语言时的默认回退页面。
结构化数据(JSON-LD)
除 Open Graph / Twitter Card 外,搜索引擎还支持通过 Schema.org 词汇的 JSON-LD 描述页面内容,可能获得富媒体搜索结果(如文章卡片、面包屑、FAQ):
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "HTML Head 元素完全指南",
"datePublished": "2026-07-23",
"author": { "@type": "Person", "name": "Jane Doe" }
}
</script>
- 放在
<head>或<body>均可,通常放在<head>便于统一管理。 - 内容需与页面实际展示一致,虚假标注可能被搜索引擎处罚。
- 可用 Rich Results Test 校验是否能被正确解析。
总结
charset与viewport优先;标题与描述服务用户与搜索摘要。- 脚本默认阻塞解析:用
defer/async控制加载。 preload/preconnect用于关键路径;prefetch用于下一页。- 社交分享用 Open Graph / Twitter Card;关键词 meta 可省略。
- 多语言站点用
hreflang互相声明;结构化数据用 JSON-LD 争取富媒体搜索结果。
参考文献
以下链接在编写时均可正常访问:
| 资料 | 说明 |
|---|---|
| MDN:<head> | head 元素 |
| MDN:<meta> | meta 属性 |
| MDN:<link> | rel 与资源提示 |
| MDN:script 加载策略 | defer、async、module |
| MDN:Viewport meta | 视口 |
| MDN:rel=preload | 预加载 |
| Open Graph Protocol | og:* 元数据 |
| Google Search Central:元描述 | description 说明(英文) |
相关文章
简介
HTML(HyperText Markup Language,超文本标记语言)用于描述网页的结构与语义:标题层级、段落、链接、表单、图片替代文本等。浏览器根据 HTML 构建 DOM,再结合 CSS 呈现样式、JavaScript 实现交互。本文系统梳理语义化、可访问性与现代 HTML 要点。
标签
HTML 标签用于表达内容的语义与结构。应优先选用与含义匹配的元素(如 而非 ),并遵守内容模型(哪些子元素合法)。概念见 简介;head 内元标签见 Head。
后端入门概览
本目录覆盖 JavaScript/TypeScript 服务端运行时与框架、数据存储,以及 Rust 系统编程入门,提供从零到部署的完整学习路径。前置建议:JavaScript 基础、工程化 · 环境变量。
Bun 基础与核心命令
Bun 是用 Zig 编写的 JavaScript 运行时,内置包管理(bun install)、打包(bun build)、测试(bun test)等,并持续兼容 Node.js API。本文介绍核心特点、安装方式,以及日常最常用的命令与包管理功能。见 运行时对比。
数据存储导读
本目录覆盖关系型数据库 MySQL 与内存数据库 Redis,从概念、安装到数据操作、性能优化、备份与缓存实践,面向后端开发与运维入门。与 NestJS 数据库、后端入门 等应用层文档配合阅读。
Redis 入门:概念、安装与数据类型
从「是什么/为什么用」到 Docker/本机安装、基本 CLI,再到五大基础类型命令、持久化与过期键机制、与 MySQL 的选型对比,以及常见踩坑,全面梳理 Redis 入门知识。
Series
html
1 / 3