# HTML5
**HTML5**是定义HTML 标准的最新的版本。该术语表示两个不同的概念:
* 它是一个新版本的**HTML**语言,具有新的元素,属性和行为,
* 它有更大的**技术**集,允许更多样化和强大的网站和应用程序。这个集合有时称为HTML5和朋友,通常缩写为_**HTML5**_。
#### 声明文件包含HTML5标记
```
<!DOCTYPE html>
```
#### 声明字符集
```
<meta charset="UTF-8">
```
---
## [语义](/yu-yi.md)
> 能够让你更恰当地描述你的内容是什么。
#### HTML5 中的节段和提纲
HTML5 中新的提纲和节段元素一览: `<section>`、`<article>`、`<nav>`、`<header>`、`<footer>`、`<aside>`和`<hgroup>。`
#### 使用 HTML5 的音频和视频
`<audio>`和 `<video>`元素嵌入和允许操作新的多媒体内容。
#### HTML5 的表单
看一下 HTML5 中对 web 表单的改进:强制验证 API,一些新的属性,`<input>`属性type 的一些新值 ,新的 `<output>`元素。
#### 新的语义元素
除了节段,媒体和表单元素之外,还有众多的新元素,例如`<mark>`, `<figure>`, `<figcaption>`, `<data>`, `<time>`, `<output>`, `<progress>`, 或者 `<meter>`和`<main>`,这增加了有效的 HTML5 元素的数量。
#### <iframe> 的改进
使用 `sandbox`, `seamless`, 和 `srcdoc`属性,作者们现在可以精确控制 `<iframe>`元素的安全级别以及期望的渲染。
#### MathML
允许直接嵌入数学公式。
---
## [通信](/tong-xin.md)
> 能够让你和服务器之间通过创新的新技术方法进行通信。
#### Web Sockets
允许在页面和服务器之间建立持久连接并通过这种方法来交换非 HTML 数据。
#### Server-sent events
允许服务器向客户端推送事件,而不是仅在响应客户端请求时服务器才能发送数据的传统范式。
#### WebRTC(未完成)
这项技术,其中的 RTC 代表的是即时通信,允许连接到其他人,直接在浏览器中控制视频会议,而不需要一个插件或是外部的应用程序。
---
## [离线 & 存储](/li-xian-and-cun-chu.md) {#离线_存储}
> 能够让网页在客户端本地存储数据以及更高效地离线运行。
#### 离线资源:应用程序缓存
火狐全面支持 HTML5 离线资源规范。其他大多数针对离线资源仅提供了某种程度上的支持。
#### 在线和离线事件
Firefox 3 支持 WHATWG 在线和离线事件,这可以让应用程序和扩展检测是否存在可用的网络连接,以及在连接建立和断开时能感知到。
#### WHATWG 客户端会话和持久化存储 \(又名 DOM 存储\)
客户端会话和持久化存储让 web 应用程序能够在客户端存储结构化数据。
#### IndexedDB
是一个为了能够在浏览器中存储大量结构化数据,并且能够在这些数据上使用索引进行高性能检索的 Web 标准。
#### 自 web 应用程序中使用文件
对新的 HTML5 文件 API 的支持已经被添加到 Gecko 中,从而使 Web 应用程序可以访问由用户选择的本地文件。这包括使用
**type**`<input>`file的**multiple**`FileReader`元素的新的属性针对多文件选择的支持。 还有`FileReader`。
---
## [多媒体](/duo-mei-ti.md) {#多媒体}
> 使 video 和 audio 成为了在所有 Web 中的一等公民。
#### 使用 HTML5 音视频(未完成)
`<audio>`和`<video>`元素嵌入并支持新的多媒体内容的操作。
#### 使用 Camera API
允许使用,操作计算机摄像头,并从中存储图像。
#### Track 和 WebVTT
`<track>`元素支持字幕和章节。
#### WebVTT
一个文本轨道格式。
---
## [3D, 图像 & 效果](/3d-tu-xiang-and-xiao-guo.md) {#3D_图像_效果}
> 提供了一个更加分化范围的呈现选择。
#### Canvas(未完成)
`<canvas>`JavaScript是一个可以使用脚本\(通常为HTML\)在其中绘制图形的元素。
#### WebGL
WebGL 通过引入了一套非常地符合 OpenGL ES 2.0 并且可以用在 HTML5`<canvas>`元素中的 API 给 Web 带来了 3D 图像功能。
#### SVG
一个基于 XML 的可以直接嵌入到 HTML 中的矢量图像格式。
---
## [性能 & 集成](/xing-neng-and-ji-cheng.md) {#性能_集成}
> 提供了非常显著的性能优化和更有效的计算机硬件使用。
#### Web Workers
能够把 JavaScript 计算委托给后台线程,通过允许这些活动以防止使交互型事件变得缓慢。
#### History API
允许对浏览器历史记录进行操作。这对于那些交互地加载新信息的页面尤其有用。
#### contentEditable 属性:把你的网站改变成 wiki !
HTML5 已经把 contentEditable 属性标准化了。
#### 拖放(未完成)
HTML5 的拖放 API 能够支持在网站内部和网站之间拖放项目。
#### HTML 中的焦点管理
支持新的 HTML5`activeElement`和`hasFocus`属性。
#### 基于 Web 的协议处理程序
使用`navigator.registerProtocolHandler()`方法把 web 应用程序注册成一个协议处理程序。
#### requestAnimationFrame
允许控制动画渲染以获得更优性能。
#### 全屏 API
为一个网页或者应用程序控制使用整个屏幕,而不显示浏览器界面。
#### 在线和离线事件
为了构建一个良好的具有离线功能的 web 应用程序,你需要知道什么时候你的应用程序确实离线了。顺便提一句,在你的应用程序又再回到在线状态时你也需要知道。
---
## 设备访问 {#设备访问}
> 能够处理各种输入和输出设备。
#### 触控事件
对用户按下触控屏的事件做出反应的处理程序。
#### 使用地理位置定位
让浏览器使用地理位置服务定位用户的位置。
#### 检测设备方向
让用户在运行浏览器的设备变更方向时能够得到信息。这可以被用作一种输入设备(例如制作能够对设备位置做出反应的游戏)或者使页面的布局跟屏幕的方向相适应(横向或纵向)。
#### 指针锁定 API
允许锁定到内容的指针,这样游戏或者类似的应用程序在指针到达窗口限制时也不会失去焦点。
- 第一部分 HTML
- meta
- meta标签
- HTML5
- 2.1 语义
- 2.2 通信
- 2.3 离线&存储
- 2.4 多媒体
- 2.5 3D,图像&效果
- 2.6 性能&集成
- 2.7 设备访问
- SEO
- Canvas
- 压缩图片
- 制作圆角矩形
- 全局属性
- 第二部分 CSS
- CSS原理
- 层叠上下文(stacking context)
- 外边距合并
- 块状格式化上下文(BFC)
- 盒模型
- important
- 样式继承
- 层叠
- 属性值处理流程
- 分辨率
- 视口
- CSS API
- grid(未完成)
- flex
- 选择器
- 3D
- Matrix
- AT规则
- line-height 和 vertical-align
- CSS技术
- 居中
- 响应式布局
- 兼容性
- 移动端适配方案
- CSS应用
- CSS Modules(未完成)
- 分层
- 面向对象CSS(未完成)
- 布局
- 三列布局
- 单列等宽,其他多列自适应均匀
- 多列等高
- 圣杯布局
- 双飞翼布局
- 瀑布流
- 1px问题
- 适配iPhoneX
- 横屏适配
- 图片模糊问题
- stylelint
- 第三部分 JavaScript
- JavaScript原理
- 内存空间
- 作用域
- 执行上下文栈
- 变量对象
- 作用域链
- this
- 类型转换
- 闭包(未完成)
- 原型、面向对象
- class和extend
- 继承
- new
- DOM
- Event Loop
- 垃圾回收机制
- 内存泄漏
- 数值存储
- 连等赋值
- 基本类型
- 堆栈溢出
- JavaScriptAPI
- document.referrer
- Promise(未完成)
- Object.create
- 遍历对象属性
- 宽度、高度
- performance
- 位运算
- tostring( ) 与 valueOf( )方法
- JavaScript技术
- 错误
- 异常处理
- 存储
- Cookie与Session
- ES6(未完成)
- Babel转码
- let和const命令
- 变量的解构赋值
- 字符串的扩展
- 正则的扩展
- 数值的扩展
- 数组的扩展
- 函数的扩展
- 对象的扩展
- Symbol
- Set 和 Map 数据结构
- proxy
- Reflect
- module
- AJAX
- ES5
- 严格模式
- JSON
- 数组方法
- 对象方法
- 函数方法
- 服务端推送(未完成)
- JavaScript应用
- 复杂判断
- 3D 全景图
- 重载
- 上传(未完成)
- 上传方式
- 文件格式
- 渲染大量数据
- 图片裁剪
- 斐波那契数列
- 编码
- 数组去重
- 浅拷贝、深拷贝
- instanceof
- 模拟 new
- 防抖
- 节流
- 数组扁平化
- sleep函数
- 模拟bind
- 柯里化
- 零碎知识点
- 第四部分 进阶
- 计算机原理
- 数据结构(未完成)
- 算法(未完成)
- 排序算法
- 冒泡排序
- 选择排序
- 插入排序
- 快速排序
- 搜索算法
- 动态规划
- 二叉树
- 浏览器
- 浏览器结构
- 浏览器工作原理
- HTML解析
- CSS解析
- 渲染树构建
- 布局(Layout)
- 渲染
- 浏览器输入 URL 后发生了什么
- 跨域
- 缓存机制
- reflow(回流)和repaint(重绘)
- 渲染层合并
- 编译(未完成)
- Babel
- 设计模式(未完成)
- 函数式编程(未完成)
- 正则表达式(未完成)
- 性能
- 性能分析
- 性能指标
- 首屏加载
- 优化
- 浏览器层面
- HTTP层面
- 代码层面
- 构建层面
- 移动端首屏优化
- 服务器层面
- bigpipe
- 构建工具
- Gulp
- webpack
- Webpack概念
- Webpack工具
- Webpack优化
- Webpack原理
- 实现loader
- 实现plugin
- tapable
- Webpack打包后代码
- rollup.js
- parcel
- 模块化
- ESM
- 安全
- XSS
- CSRF
- 点击劫持
- 中间人攻击
- 密码存储
- 测试(未完成)
- 单元测试
- E2E测试
- 框架测试
- 样式回归测试
- 异步测试
- 自动化测试
- PWA
- PWA官网
- web app manifest
- service worker
- app install banners
- 调试PWA
- PWA教程
- 框架
- MVVM原理
- Vue
- Vue 饿了么整理
- 样式
- 技巧
- Vue音乐播放器
- Vue源码
- Virtual Dom
- computed原理
- 数组绑定原理
- 双向绑定
- nextTick
- keep-alive
- 导航守卫
- 组件通信
- React
- Diff 算法
- Fiber 原理
- batchUpdate
- React 生命周期
- Redux
- 动画(未完成)
- 异常监控、收集(未完成)
- 数据采集
- Sentry
- 贝塞尔曲线
- 视频
- 服务端渲染
- 服务端渲染的利与弊
- Vue SSR
- React SSR
- 客户端
- 离线包
- 第五部分 网络
- 五层协议
- TCP
- UDP
- HTTP
- 方法
- 首部
- 状态码
- 持久连接
- TLS
- content-type
- Redirect
- CSP
- 请求流程
- HTTP/2 及 HTTP/3
- CDN
- DNS
- HTTPDNS
- 第六部分 服务端
- Linux
- Linux命令
- 权限
- XAMPP
- Node.js
- 安装
- Node模块化
- 设置环境变量
- Node的event loop
- 进程
- 全局对象
- 异步IO与事件驱动
- 文件系统
- Node错误处理
- koa
- koa-compose
- koa-router
- Nginx
- Nginx配置文件
- 代理服务
- 负载均衡
- 获取用户IP
- 解决跨域
- 适配PC与移动环境
- 简单的访问限制
- 页面内容修改
- 图片处理
- 合并请求
- PM2
- MongoDB
- MySQL
- 常用MySql命令
- 自动化(未完成)
- docker
- 创建CLI
- 持续集成
- 持续交付
- 持续部署
- Jenkins
- 部署与发布
- 远程登录服务器
- 增强服务器安全等级
- 搭建 Nodejs 生产环境
- 配置 Nginx 实现反向代理
- 管理域名解析
- 配置 PM2 一键部署
- 发布上线
- 部署HTTPS
- Node 应用
- 爬虫(未完成)
- 例子
- 反爬虫
- 中间件
- body-parser
- connect-redis
- cookie-parser
- cors
- csurf
- express-session
- helmet
- ioredis
- log4js(未完成)
- uuid
- errorhandler
- nodeclub源码
- app.js
- config.js
- 消息队列
- RPC
- 性能优化
- 第七部分 总结
- Web服务器
- 目录结构
- 依赖
- 功能
- 代码片段
- 整理
- 知识清单、博客
- 项目、组件、库
- Node代码
- 面试必考
- 91算法
- 第八部分 工作代码总结
- 样式代码
- 框架代码
- 组件代码
- 功能代码
- 通用代码