HTML语法学习文档 - 汇总篇

练习的代码:

CappuccinoRose/HTML-CSS-JS-Practice: 本仓库包含 HTML/CSS/JS 练习案例,旨在通过实战代码演示前端开发中的核心概念与现代特性。内容涵盖基础布局、CSS 进阶特效、原生 JavaScript 交互以及 HTML5 新增 API 的应用。

对以前听网课练习的项目重构:

旧项目:复盘MyToDoList实战成果-CSDN博客

新项目:

新项目:CappuccinoRose/To-Do-List: 这是一个基于原生 Web 技术栈(HTML5 / CSS3 / ES6+)构建的现代仪表盘风格任务管理应用。 项目从大一的简单单页列表,升级为三栏布局 + 深色主题 + 圆形进度条 + 模态交互,整体视觉与交互体验参考了当前主流 Todo / Dashboard 的设计趋势。

1. HTML 演进、标准与底层模型

链接:HTML语法学习文档(一)-CSDN博客

1.1 HTML 发展史与标准化组织

1.1.1 从 HTML2.0 到 HTML5 的重大变革回顾

1.1.2 W3C (HTML5) 与 WHATWG (Living Standard) 的分合与现状

1.1.3 浏览器渲染引擎前缀历史及现代标准化现状

1.2 DOM 核心模型与节点类型

1.2.1 DOM 树构建原理

1.2.2 Element, Text, Comment, DocumentType 及其内存结构

1.2.3 HTML 中的"空白字符处理"与文本节点规范化

1.3 文档模式与渲染触发

1.3.1 <!DOCTYPE html> 的作用机制:触发标准模式 vs 怪异模式

1.3.2 文档模式对 CSS 盒模型和 JS 行为的历史遗留影响

2. 文档元数据、Head 策略与 SEO 架构

链接:HTML语法学习文档(二)-CSDN博客

2.1 HTML 根元素与全局属性

2.1.1 <html lang="zh-CN">

2.1.2 data-* 自定义属性

2.1.3 关键全局属性详解:hidden, tabindex, title, translate

2.2 <head> 区域深度优化

2.2.1 字符集声明的必要性及编码安全(XSS 防御)

2.2.2 视口配置

2.2.3 SEO 元数据体系

2.2.3.1 基础 Meta:Description, Keywords, Robots, Author
2.2.3.2 社交媒体协议:Open Graph (Facebook/LinkedIn) vs Twitter Cards
2.2.3.3 结构化数据:JSON-LD 的应用场景

2.2.4 图标与资源清单

2.2.4.1 Favicon 演进:ICO vs PNG vs SVG (2024+ 最佳实践)
2.2.4.2 Apple Touch Icon 与 Android Adaptive Icons 配置
2.2.4.3 Web App Manifest 与 PWA 安装配置

3. 文本内容与语义化重构

链接:HTML语法学习文档(三)-CSDN博客

3.1 HTML5 语义化核心原则

3.1.1 语义化的价值:SEO 权重、可访问性 (A11y) 与代码可维护性

3.1.2 HTML5 文档大纲算法:Sectioning Roots (<body>, <blockquote>, <td>) 的影响

3.2 文本级语义标签深度应用

3.2.1 标题体系:<h1> 至 <h6> 的层级规则与 SEO 聚焦策略

3.2.2 文本强调辨析:<strong> (重要性) vs <em> (强调) vs <b>/<i> (样式)

3.2.3 超链接进阶

3.2.3.1 download 属性的跨浏览器行为与安全限制
3.2.3.2 安全机制:rel="noopener noreferrer" 防止 window.opener 漏洞

3.2.4 高精度文本标签:<mark> (高亮), <time> (机器可读时间), <wbr> (换行机会), <ruby> (注音)

3.2.5 HTML 实体与特殊字符:不转义字符的 XSS 风险

3.3 内容分组结构化

3.3.1 段落与换行:<p> 自动闭合机制与 <br>, <hr> 的语义场景

3.3.2 列表体系进阶

3.3.2.1 无序 <ul> 与有序 <ol> 列表的嵌套技巧与 reversed 属性
3.3.2.2 定义列表 <dl>:键值对术语解释与 SEO 意义
3.3.2.3 菜单与工具栏:废弃 <menu> 的复活与 <command> 的现状

4. 现代页面布局与交互组件

链接:HTML语法学习文档(四)-CSDN博客

4.1 页面级语义化布局

4.1.1 顶部与导航:<header>, <nav> 的层级关系与 ARIA Landmark 角色映射

4.1.2 内容区分辨析:<article> (独立内容) vs <section> (章节分组)

4.1.3 侧边与底部:<aside> (相关内容) vs <footer> (元数据/版权) 的嵌套规则

4.2 通用容器与组件封装

4.2.1 <div> 滥用防御:无语义容器的替代方案与 CSS Hooks

4.2.2 <figure> 与 <figcaption>:图表、代码块、插图的语义封装

4.2.3 详情与折叠:原生 <details> 与 <summary> 的交互实现与动画技巧

4.3 2023-2026 新增与强化语义特性

4.3.1 <search> 标签:标识搜索区域的 SEO 优势与 ARIA 集成

4.3.2 模态框革命:<dialog> 元素深度应用

4.3.2.1 .showModal() (模态) vs .show() (非模态) 的行为差异
4.3.2.2 ::backdrop 伪元素的样式定制与层级管理
4.3.2.3 表单回车提交的自动处理机制

4.3.3 Popover API:popover 属性、anchor 定位与轻量级弹窗

4.3.4 原生拖拽 API:draggable 属性、DataTransfer 对象与 HTML5 拖放事件流

5. 表单增强与数据交互工程

链接:HTML语法学习文档(五)-CSDN博客

5.1 表单控件演进与类型

5.1.1 Input 类型全解:email, tel, url, number, date, color 等原生控件

5.1.2 HTML5 辅助控件:<datalist> (自动补全), <progress> (进度), <meter> (度量)

5.1.3 文件上传进阶:accept (MIME 类型), multiple, capture (摄像头调用) 与 webkitdirectory

5.2 表单验证与用户体验

5.2.1 原生验证约束:required, pattern, min/max/step, minlength/maxlength

5.2.2 交互反馈 API:setCustomValidity() 的错误消息定制与 ValidityState 对象

5.2.3 CSS 伪类增强::valid, :invalid, :user-valid, :user-invalid, :placeholder-shown

5.2.4 输入模式优化:inputmode 属性在移动端唤起数字键盘/九宫格键盘的作用

5.3 提交机制与安全防御

5.3.1 表单重写属性:formaction, formenctype, formmethod, formnovalidate

5.3.3 自动填充管理:autocomplete 属性值详解(on/off/name/shipping)及安全考量

6. 多媒体、图形与嵌入资源

链接:HTML语法学习文档(六)-CSDN博客

6.1 图像优化与响应式策略

6.1.1 响应式图片技术:<picture> 元素、srcset 与 sizes 的像素比 (x) vs 宽度描述符 (w)

6.1.2 现代格式支持:WebP, AVIF, HEIC 的降级处理方案

6.1.3 性能优化:loading="lazy" (原生懒加载) 与 decoding="async" (异步解码)

6.1.4 布局稳定性:width 与 height 属性在防止 CLS (累积布局偏移) 中的作用

6.2 音视频媒体流

6.2.1 <video> 与 <audio> 核心 API:播放控制、全屏策略与媒体事件监听

6.2.2 字幕与多语言:<track> 标签、WebVTT 格式与无障碍访问

6.2.3 流媒体集成:HLS (.m3u8) 与 DASH 在 HTML5 中的播放方案 (MSE 技术)

6.3 矢量图形与内联 SVG

6.3.1 SVG 引入方式对比:Inline, <img>, Background Image, <object> 的优劣

6.3.2 SVG 无障碍访问:<title>, <desc> 与 aria-labelledby 属性

6.3.3 SVG 与 CSS/JS 交互:动画实现与 Sprite 雪碧图技术

7. 浏览器渲染原理与性能优化

链接:HTML语法学习文档(七)-CSDN博客

7.1 资源加载与执行时序

7.1.1 <script> 标签执行机制详解

7.1.1.1 普通加载:阻塞 DOM 解析 (Parser Blocking)
7.1.1.2 defer:脚本在 DOMContentLoaded 前按顺序执行
7.1.1.3 async:脚本加载完成后立即执行,顺序不确定
7.1.1.4 type="module":ES 模块的自动 defer 行为与依赖解析

7.1.2 资源提示

7.1.2.1 预连接优化:preconnect (TCP/TLS 握手) vs dns-prefetch (DNS 解析)
7.1.2.2 资源预加载:preload (当前页关键资源) vs prefetch (未来页可能资源)
7.1.2.3 渲染控制:blocking="render" (2024+ 特性) 控制关键资源加载前的渲染阻塞

7.2 关键渲染路径

7.2.1 DOM 树与 CSSOM 树的合并过程:Render Tree 的构建与忽略策略 (display: none)

7.2.2 布局 与 绘制 的触发条件

7.2.3 合成:GPU 加速与 HTML 结构对合成层的影响

7.3 核心 Web 指标 (Core Web Vitals) 优化

7.3.1 LCP (Largest Contentful Paint):HTML 元素选择 (优先加载 img, video, 块级元素)

7.3.2 INP (Interaction to Next Paint):减少主线程阻塞与长任务拆分

7.3.3 CLS (Cumulative Layout Shift):预留空间与字体加载策略 (font-display: swap)

8. 安全策略、跨域与嵌入内容

链接:HTML语法学习文档(八)-CSDN博客

8.1 <iframe> 深度应用与隔离

8.1.1 沙箱机制:sandbox 属性的安全配置值组合与权限控制

8.1.2 权限策略:allow 属性与 Permissions Policy (控制摄像头/麦克风/全屏)

8.1.3 跨窗口通信:window.postMessage() 的数据结构化安全校验

8.2 内容安全与混合内容

8.2.1 混合内容:HTTPS 页面中的 HTTP 资源请求风险

8.2.2 CSP (Content Security Policy):Meta 标签配置、nonce 与 hash 源锁定

8.2.3 SRI (Subresource Integrity):CDN 资源完整性校验与防篡改

8.2.4 Crossorigin 属性:anonymous vs use-credentials 对 CORS 请求的影响

9. 工程化实践、架构模式与未来

链接:HTML语法学习文档(九)-CSDN博客

9.1 HTML 组件化与架构

9.1.1 Web Components 标准体系

9.1.1.1 <template> 标签与惰性加载机制
9.1.1.2 Shadow DOM 封装原理与样式隔离
9.1.1.3 Declarative Shadow DOM (2024+):服务端渲染组件的优势与构建

9.1.2 组件化思维:基于 Web Components 的设计系统

9.1.3 Import Maps:浏览器原生模块解析控制 (无需 Webpack/Vite 映射)

9.2 服务端渲染 (SSR) 与静态生成

9.2.1 Hydration (注水) 标记:data-reactroot 等属性的作用

9.2.2 流式渲染:渐进式 HTML 注水与 defer 优化

9.2.3 Meta 标签的动态注入与爬虫策略

9.3 代码规范与开发工具

9.3.1 Linting 与格式化:ESLint HTML 插件、Prettier 配置与 .editorconfig

9.3.2 Emmet 语法高阶应用:复杂结构的快速生成

9.3.3 浏览器开发者工具:Elements 面板中的 DOM 断点与样式追踪

9.4 前沿技术探索

9.4.1 WebAssembly 与 HTML 的交互接口 (<script type="module"> 导入)

9.4.2 View Transitions API:单页应用 (SPA) 的原生页面过渡效果

9.4.3 下一代 Web App Manifest 标准与桌面应用集成

10.常见陷阱

链接:HTML语法学习文档(十)-CSDN博客

10.1 基础概念深度辨析

10.1.1 Block Formatting Context (BFC):触发条件与 HTML 标签的关联

10.1.2 事件流机制:捕获、目标与冒泡阶段在 HTML 结构中的体现

10.1.3 HTML5 离线存储:Application Cache (已废弃) vs Service Worker Cache API

10.2 易错点与反模式

10.2.1 交互陷阱:<a> 标签嵌套可点击元素 (<div>, <button>) 的浏览器行为差异

10.2.2 样式重置:表单元素的默认样式差异与 appearance: none 的应用

10.2.3 字符编码:BOM 头 (Byte Order Mark) 对页面渲染的影响

10.2.4 属性陷阱:id 命名规范与 JS getElementById 的特殊性

10.3 常识

10.3.1 DOCTYPE 的作用是什么?不写会发生什么?

10.3.2 srcset 中的 x 描述符和 w 描述符的区别是什么?sizes 如何计算?

10.3.3 <script> 的 defer 和 async 的区别?(含 DOMContentLoaded 时序图解)

10.3.4 Cookie、SessionStorage、LocalStorage 和 IndexedDB 的区别?

10.3.5 为什么把 CSS <link> 放在 <head> 中,而 JS <script> 放在 </body> 前?(含优化例外情况)

相关推荐
Aliex_git2 小时前
Sentry 私有部署和配置笔记
笔记·学习·sentry
四谎真好看2 小时前
SSM学习笔记(SpringBoot篇)
spring boot·笔记·学习·学习笔记·ssm
学编程的闹钟2 小时前
E语言子程序调用详解
学习
郝学胜-神的一滴3 小时前
Effective Modern C++ 条款40:深入理解 Atomic 与 Volatile 的多线程语义
开发语言·c++·学习·算法·设计模式·架构
追光少年33223 小时前
React学习:ES6
学习·react.js·es6
a1117763 小时前
星球主题个人主页(纯HTML 开源)
前端·html
宇木灵3 小时前
考研数学-高中数学回顾函数的微分day8(完结)
笔记·学习·考研·数学·函数·导数·微分
空条jo太郎3 小时前
echarts图表联动
前端
webkubor3 小时前
2026 年 把网页交互的主控权拿回前端手中 🚀
前端·javascript·人工智能