HTML 完整详解文档

超文本标记语言|从基础、标签、属性、语义化到站内SEO全面讲解

📑 目录

1. 什么是HTML

HTML(Hyper‑Text Markup Language):超文本标记语言,不是编程语言,是标记语言

HTML本身不能做逻辑计算,没有变量、循环;交互效果需要 JS。

2. HTML标准文档结构

<!DOCTYPE html>
<html lang="zh‑CN">
<head>
    <meta charset="UTF‑8">
    <meta name="viewport" content="width=device‑width, initial‑scale=1.0">
    <title>页面标题</title>
</head>
<body>
    <!-- 页面所有可见内容写在这里 -->
    <h1>一级标题</h1>
    <p>段落文本</p>
</body>
</html>

各部分说明

3. 标签分类

① 双标签(闭合标签)

有开始标签+结束标签,中间包裹内容。例:<p>内容</p><div></div>

② 单标签(自闭合标签)

无结束标签,本身完成功能。例:<img><br><hr><meta>

③ 块级元素 block

④ 行内元素 inline

⑤ 行内块 inline‑block

4. 标签属性

写在开始标签内部,格式:属性名="属性值",用来给标签附加额外信息。

<a href="https://www.baidu.com" target="_blank">跳转链接</a>
<img src="demo.jpg" alt="图片描述" width="400">

通用全局属性(几乎所有标签都能用)

属性值建议统一使用双引号 "",不要省略引号,保持规范。

5. HTML5 语义化标签

语义标签:标签名字就代表内容含义,利于搜索引擎SEO、无障碍读屏,替代大量无意义div。

标签 用途说明
<header> 页面/模块头部:导航、标题区
<nav> 导航菜单区域
<main> 页面主体内容,一个页面只能出现一次main
<section> 内容区块,主题性分组
<article> 独立完整内容:文章、帖子
<aside> 侧边栏、附属信息
<footer> 页脚:版权、联系方式
<figure>/<figcaption> 图片+图注说明
<header>网站头部</header>
<nav>导航菜单</nav>
<main>
    <section>内容区块</section>
    <article>文章内容</article>
</main>
<aside>侧边栏</aside>
<footer>页脚版权</footer>

6. 高频常用标签速查表

文本类

链接 & 多媒体

列表

表格

<table>
  <thead><tr><th>表头</th></tr></thead>
  <tbody><tr><td>单元格</td></tr></tbody>
</table>

表单

<form action="/submit" method="post">
  <input type="text" name="username">
  <select><option>选项</option></select>
  <textarea></textarea>
  <button type="submit">提交</button>
</form>

容器标签

7. HTML语法书写规范

  1. 标签尽量小写(HTML5大小写都兼容,但行业统一小写);
  2. 双标签必须正确闭合,标签嵌套顺序不能交叉;错误示例:<div><p></div></p>
  3. 属性名小写,属性值双引号包裹;
  4. 层级嵌套使用缩进,每一层缩进2‑4空格,方便阅读;
  5. 页面保留唯一 <!DOCTYPE html>,设置meta charset="UTF‑8";
  6. id页面唯一,class可重复;不要用id做CSS样式,优先class;
  7. img必须写alt属性;a标签href不要空置;
  8. 语义化优先,少用纯粹div堆砌页面。

8. DOM文档对象模型

DOM:Document Object Model,文档对象模型。浏览器把HTML文档解析成树形对象结构

// JS简单示例:获取id为box的元素
const box = document.getElementById('box');
box.innerText = "修改文本内容";

9. HTML转义字符(实体字符)

页面需要输出 < > & 等特殊符号,必须使用转义,否则浏览器会当成标签解析。

显示字符 转义代码
< &lt;
> &gt;
& &amp;
" &quot;
空格 &nbsp;

10. HTML站内SEO优化(标签+实操)

站内SEO:通过HTML标签、元信息、页面结构,帮助搜索引擎爬虫理解页面主题,提升收录与排名。

10.1 head内SEO核心meta标签(直接复制可用)

<!-- 页面标题,SEO权重最高,30‑60字符,包含核心关键词 -->
<title>核心关键词 - 网站品牌名称</title>

<!-- 页面描述,搜索结果摘要,70‑160字符,提升点击率 -->
<meta name="description" content="页面简短描述,包含业务关键词,吸引用户点击">

<!-- 关键词meta,现代搜索引擎权重降低,可写可不写 -->
<meta name="keywords" content="关键词1,关键词2,长尾词">

<!-- 爬虫指令:all允许抓取;noindex禁止收录;nofollow不跟踪链接 -->
<meta name="robots" content="index,follow">

<!-- 规范URL,解决重复页面,指定规范页面地址 -->
<link rel="canonical" href="https://www.example.com/page.html">

<!-- 多语言站点hreflang,外贸网站使用 -->
<link rel="alternate" hreflang="zh‑CN" href="https://example.com/cn/">
<link rel="alternate" hreflang="en" href="https://example.com/en/">

<!-- 移动端适配,必须配置,移动SEO基础 -->
<meta name="viewport" content="width=device‑width, initial‑scale=1.0">

10.2 标题层级 H1‑H6 优化规则

<h1>页面主标题(核心关键词)</h1>
<h2>板块一标题</h2>
<p>板块一正文内容...</p>
<h3>板块一子项标题</h3>

10.3 图片img SEO优化

<img src="office‑chair.jpg" alt="办公人体工学椅" width="800" height="600" loading="lazy">

10.4 超链接 a 标签SEO实操

<!-- 内部链接 -->
<a href="/product/list.html">查看全部产品列表</a>

<!-- 外部外链 -->
<a href="https://outer‑site.com" target="_blank" rel="nofollow noopener noreferrer">第三方站点</a>

10.5 HTML5语义化对SEO的作用

10.6 结构化数据 Schema(富摘要,高级SEO)

JSON‑LD嵌入head,告诉搜索引擎页面类型(商品、文章、企业),获取搜索结果富卡片展示。

<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@type":"Article",
  "headline":"文章标题",
  "description":"文章简述",
  "author":{"@type":"Person","name":"作者名"}
}
</script>

10.7 HTML层面SEO禁止行为(避坑)

  • ❌ 隐藏文字:字体颜色与背景一致、极小字号堆砌关键词,判定作弊;
  • ❌ 页面多个H1;标题与页面实际内容严重不符;
  • ❌ a标签href="#"空链接大量使用;
  • ❌ img标签省略alt;
  • ❌ 大量JS渲染内容,爬虫拿不到文本;重要内容输出原生HTML;

10.8 配套文件说明(不属于HTML标签,但站内SEO必备)

HTML站内SEO只完成基础;排名还需要:内容质量、外链、页面加载速度、移动端体验。

11. 常见错误与注意事项

  • ❌ head里面写页面可见内容:所有显示内容必须放在body;
  • ❌ id重复:同一个页面id不能多个相同;
  • ❌ 标签交叉嵌套:<div><p></div></p> 非法;
  • ❌ img省略alt,不利于无障碍与SEO;
  • ❌ 忘记doctype,触发浏览器怪异模式,样式错乱;
  • ❌ 表单input不写name,后端接收不到表单数据;

浏览器调试工具

页面按 F12 打开开发者工具,Elements面板可以查看、修改实时HTML结构,调试布局错误。

HTML只负责结构;样式交给CSS,交互交给JS,职责分离,不要全部堆在HTML标签内。

联系站长