recursal/MDN huggingface dataset:
WebDriver
=========

WebDriver 是远程控制接口，可以对用户代理进行控制。它提供了一个平台和中立语言协议结构，作为进程外程序远程指导 web 浏览器行为的方法。

具备编写可以在不同平台上的许多浏览器中互换运行的指令集的能力，对于向用户提供一致的体验至关重要。随着网络平台的新一轮发展，设备多样性的增加以及对技术之间真正的互操作性的要求，WebDriver 提供了跨浏览器测试的工具。

WebDriver 所提供的是一组接口，用于发现和操作网络文档中的 DOM 元素，并控制用户代理的行为。它的主要目的是让 web 作者编写测试，从单独的控制过程中实现用户代理的自动化，但也可以用这样的方式，让浏览器内的脚本控制一个（单独的）浏览器。

使用方法
----

那么，WebDriver 可以让你做什么，它又是什么样子的？由于 WebDriver 是编程语言中立的，这个问题的答案取决于你所使用的 WebDriver 客户端和语言的选择。

使用一个用流行的 Python 语言编写的客户端，与 WebDriver 的互动可能看起来像这样：


```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located

with webdriver.Firefox() as driver:

    driver.get("http://google.com/ncr")
    wait = WebDriverWait(driver, 10)
    driver.find_element(By.NAME, "q").send_keys("cheese" + Keys.RETURN)
    wait.until(presence_of_element_located((By.XPATH, '//\*[@id="rcnt"]')))
    results = driver.find_elements(By.XPATH, "//a[@href]")

    for i, elem in enumerate(results):
        print(f'#{i} {elem.text} ({elem.get\_attribute("href")})')
```


它可能会输出：
```

#1 Cheese - Wikipedia (https://en.wikipedia.org/wiki/Cheese)
```

参考
--

### 命令

命令 (en-US)

### 类型

类型

* 错误对象 (en-US)
* 超时对象 (en-US)
* WebElement
* WebWindow
### 能力

能力 (en-US)

### 错误

错误 (en-US)

规范
--

* WebDriver
参见
--

* 跨浏览器测试
* Selenium 文档
XSLT：可扩展样式表语言转换
===============

**可扩展样式表语言转换**（XSLT）是一种基于 XML 的语言，和专门的处理软件一起使用，用于 XML 文档转换。

虽然这个处理过程被称作“转换”，但并没有改变原始文档，而是在原文档内容的基础上创建了一个新的 XML 文档。然后，这个新文档会被处理器序列化（输出）为标准的 XML 语法或其他格式（如 HTML 或纯文本）。

XSLT 最常用于不同 XML 模式间的数据转换，或用于将 XML 数据转换为网页或 PDF 文档。

文档
--

XSLT 元素参考 (en-US)

参考。

使用 XSLT 转换 XML

XSLT 允许样式表作者以两种重要的方式转换主 XML 文档：对内容进行操作或排序，包括根据需要对其进行整体重新排序，以及将内容转换为不同的格式。

使用 Mozilla JavaScript 接口进行 XSL 转换 (en-US)

文档描述了 Mozilla 1.2 及以上版本中 XSLT 处理引擎的 JavaScript 接口。

使用处理指令指定参数 (en-US)

Firefox 允许在使用 `<?xml-stylesheet?>` 处理指令时指定样式表参数。这是通过文档中描述的 `<?xslt-param?>` 处理指令完成的。

XSLT 教程

此 W3Schools 教程指导读者如何使用 XSLT 将 XML 文档转换为其他格式（如 XHTML）。

什么是 XSLT？

对 XSLT 和 XPath 的详尽介绍，假设读者先前不了解这些技术，并引导读者了解背景、上下文、结构、概念和介绍性的术语。

XSLT 的常见错误 (en-US)

本文列出了在 Firefox 中使用 XSLT 时的一些常见问题。

相关主题
----

* XML、XPath
无障碍
===

**无障碍**（Accessibility，常被缩写为 **A11y**，因为它以“a”开头，后跟 11 个字母，以“y”结尾）在 web 开发中意味着使尽可能多的人能够使用网站，即使有些用户的能力在某种程度上受限。

对大多数人来说，技术让生活更便捷。而对于有障碍的人群，技术使一切皆有可能。无障碍化意味着设计出尽可能没有使用障碍的内容，无论访问者的身体情况、认知能力以及他们访问 web 的方式是怎样的。

“**Web 从根本上是为所有人设计的**，无论他们的硬件、软件、语言、位置或能力如何。当 web 达到这一目标时，具有不同听力、运动、视觉和认知能力的人都可以访问它。”（W3C——无障碍）

主要教程
----

MDN 无障碍学习区包含现代的最新教程，涵盖以下无障碍性要点：

什么是无障碍？

这篇文章很好地初步介绍了无障碍化的实际情况——包括我们需要考虑哪些人群以及为什么，不同的人用什么工具与 Web 进行交互，以及如何在网站开发的流程中加入无障碍设计。

HTML：无障碍性的良好基础

只需确保以恰当的方式使用正确的 HTML 元素，很多 web 内容就能实现无障碍化。本文详细介绍如何使用 HTML 来实现最大程度的无障碍化。

CSS 和 JavaScript 无障碍最佳做法

如果使用得当，CSS 和 JavaScript 也能提供无障碍的 web 体验。倘若误用，无障碍性会明显受损。本文列出了一些 CSS 和 JavaScript 最佳实践，即使是复杂的内容，也能尽可地确保无障碍。

WAI-ARIA 基础知识

如前文所述，在涉及无语义 HTML 和 JavaScript 动态更新的内容时，制作复杂的 UI 控件可能很困难。借助 WAI-ARIA 技术来添加额外的语义，使得浏览器和无障碍技术可以识别和使用这些控件，并让用户了解网页实际情况。这里我们将介绍这种技术的基础知识，并用它改善无障碍性。

多媒体无障碍化

多媒体也是一类可能需要无障碍化的内容——视频、音频、图像等都需要给出适当的文本替代，以便可以被辅助性技术及其用户来理解。本文就介绍了以上内容。

移动设备的无障碍

使用移动设备访问 web 越来越流行，而同时，iOS、Android 等主流移动平台也拥有日趋完善的辅助工具，让你的网站内容在这些平台上做到无障碍化自然很重要。本文将介绍移动设备领域的无障碍化注意事项。

其他文章
----

了解 Web 内容无障碍功能指南 (en-US)

这组文章提供了快速解释，以帮助你了解需要采取的步骤，以符合 W3C web 内容无障碍指南 2.0（WCAG 2.0 或简称 WCAG，出于撰文需要）的建议。

色彩与无障碍简介 (en-US)

本文探讨了我们对于亮度和色彩的感知，并提供了如何在无障碍设计中使用色彩的基础知识，也演示了视觉与可读内容的最佳实践。

可通过键盘导航的 JavaScript 小部件 (en-US)

直到目前，web 开发人员仍缺乏合适的技术使基于 `<div>` 和 `<span>` 的自定义组件无障碍化。**对键盘的无障碍性**是最基础的无障碍要求之一，开发者应当了解这一内容。

ARIA (en-US)

学习如何利用无障碍富互联网应用（Accessible Rich Internet Application）使你的 HTML 文档进一步无障碍化的一组文章。

移动无障碍化清单

本文档向移动应用开发者提供了实现无障碍化所需内容的简明清单。

认知无障碍 (en-US)

本文说明了如何确保你创造的 web 内容对认知障碍群体是无障碍的。

对癫痫症患者的无障碍 (en-US)

对于伴有特定脑部缺陷的群体，web 上的某些视觉内容可能导致他们出现癫痫症状。本文可以帮助你理解哪一类内容会有这些问题，并提供了避开这些问题的策略与工具。

参见
--

* WAI 兴趣组
* 开发者指南
XML (可扩展标记语言)
=============

**可扩展标记语言**是可由文档对象模型 (DOM)严格序列化的一种语言。

XML 简介XML（Extensible Markup Language）是一种类似于 HTML，但是没有使用预定义标记的语言。因此，可以根据自己的设计需求定义专属的标记。这是一种强大将数据存储在一个可以存储、搜索和共享的格式中的方法。最重要的是，因为 XML 的基本格式是标准化的，如果你在本地或互联网上跨系统或平台共享或传输 XML，由于标准化的 XML 语法，接收者仍然可以解析数据。

解析或序列化 XML有时，你可能需要解析 XML 内容，并把它转换为 DOM 树，或者，反过来将现有的 DOM 树序列化成 XML。在本文中，我们将了解 web 平台提供的对象，以便轻松地完成序列化和解析 XML 的常见任务。
Web 媒体技术
========

逐年来，Web 呈现、创建并管理音频、视频和其他媒体的能力以不断增长的步伐发展。今日有着大量可用的 API、HTML 元素、DOM 界面和其他不仅仅限于完成这些任务，而是为了将媒体和其他技术联合使用以实现非凡事物的特性可供使用。这篇文章列出了可能对你掌握这些技术有帮助的多种 API 与其文档链接。

参考资料
----

### HTML

这些文章包含了供媒体开发者使用的 HTML 特性。

`<audio>`

`<audio>` 元素用于在 Web 上下文中播放音频。这可以用于复杂媒体的隐性目标，亦或是用户控制播放音频的可见控制。可以通过 JavaScript `HTMLAudioElement` 对象访问。

`<video>`

`<video>` 元素是 Web 上下文中视频内容的端点。其可以简单地用于呈现视频，亦或是流式视频的目标。`<video>` 也可以用于连接媒体 API 和其他 HTML 与 DOM 技术，比如 `<canvas>`（用于抓取并控制框中内容)，例如，可以通过 JavaScript `HTMLVideoElement` 对象访问。

`<track>`

`<track>` 元素可以被放置在 `<audio>` 或者 `<video>` 元素内部，当在媒体播放时，以提供 WebVTT 格式化字幕或标题轨道的参考。可以通过 JavaScript `HTMLTrackElement` (en-US) 对象访问。

`<source>`

`<source>` 元素可以放在 `<audio>` 或者 `<video>` 元素内部，以指定当前显示的源媒体。可以使用多个不同格式、大小、分辨率的媒体源。可以通过 JavaScript `HTMLSourceElement` (en-US) 对象访问。

### API 接口

媒体功能 API (en-US)

媒体功能 API 可以确定运行你的应用程序或网站的设备的编码和解码能力，让你实时决定使用的格式以及时机。

媒体捕获和流媒体 API

使得串流、播放和控制本地和网络媒体成为可能的 API 参考文献。包括使用本地摄像头与麦克风来抓取视频、音频和静止图片。

媒体会话 API (en-US)

媒体会话 API 提供了一种定制媒体通知的方法。它通过提供元数据，让用户代理显示你的网络应用程序正在播放的媒体。它还提供了行动处理程序，浏览器可以用来访问平台媒体键，如键盘、耳机、遥控器上的硬件键，以及通知区和移动设备锁屏上的软件键。

媒体流录制 API

媒体流录制 API 允许你捕获媒体流并处理或过滤数据，或者将其保存在磁盘上。

网络音频 API

网络音频 API 允许你生成、过滤并调节实时与预录的音频材料，并将其发送至 `<audio>` 元素、媒体流或磁盘中。

WebRTC

WebRTC（网页即时通信）可以使互联网上任意两位用户在无需媒介的情况下中串流实时音频、视频和任意数据。

指南
--

在 HTML 中使用音频和视频资源 (en-US)

这里是一篇使用 HTML `<audio>` 和 `<video>` 元素的指南。

Web 设计中的媒体无障碍指南

在本指南中，我们将介绍 web 设计人员和开发人员创建的内容能让具有不同能力的人可以访问的方法。这个范围包括从 `<img>` 元素上简单地使用 `alt` 属性到为屏幕阅读者提供字幕标记的媒体。

Web 媒体类型和格式指南

关于文件类型和编解码器对于 web 上的图像、音频和视频媒体有效的指南。这包括使用何种格式处理什么内容的建议、最佳实践，以及如何提供后备方案和如何对媒体类型进行优先排序，还包括针对每个媒体容器和编解码器的一般浏览器支持信息。

音频和视频推流 (en-US)

该指南涵盖了如何进行音频和视频流推送，以及你可以利用的技巧和技术，以确保你的流媒体的最佳质量和/或性能。

媒体和 Web 音频 API 自动播放指南

出乎意料的自动播放媒体或音频对用户来说可能是一个不受欢迎的惊喜。虽然自动播放是有目的的，但应该谨慎使用。为了让用户控制这一点，许多浏览器现在都提供了自动播放阻塞的形式。本文是关于自动播放的指南，提供了一些技巧，告诉你何时以及如何使用它，以及如何使用浏览器优雅地处理自动播放阻塞。

Web 音频空间化基础

3D 环境既可以是渲染到屏幕上的 3D 场景，也可以是使用头盔体验的混合现实场景，重要的是音频的表现要让它听起来像来自其来源的方向。本指南涵盖了如何实现这一点。

其他主题
----

你可能会感兴趣的相关主题，因为这些技术可以用有趣的方式与媒体 API 共同使用。

Canvas API

Canvas API 允许你在 `<canvas>` 上绘画、操纵并改变图像内容。这样可以与媒体以多种方式使用，包括设置 `<canvas>` 元素作为视频播放或摄像头捕获的终点以捕获或操纵视频帧。

WebGL

WebGL 在已存在的 Canvas API 上提供了与 OpenGL ES 兼容的 API，使得在 Web 上制作强大的 3D 图像成为可能。通过一张画布，这可以用于为媒体内容添加 3D 图像。

WebXR

作为取代 WebVR API 的存在，WebXR 是一种支持创建虚拟现实（VR）和增强现实 (AR) 内容的技术。混合现实内容可以显示在设备的屏幕上，或者是显示在目镜或耳机内。

WebVR 
已弃用

Web Virtual Reality API 支持虚拟现实（VR）设备，如 Oculus Rift 或 HTC Vive，使开发人员能够将用户的位置和移动转换为 3D 场景中的移动，然后在设备上显示。WebVR 已经被 WebXR 所取代，并将从浏览器中移除。
渐进式 Web 应用（PWA）
===============

**渐进式 Web 应用**（Progressive Web App，PWA）是一个使用 web 平台技术构建的应用程序，但它提供的用户体验就像一个特定平台的应用程序。

它像网站一样，PWA 可以通过一个代码库在多个平台和设备上运行。它也像一个特定平台的应用程序一样，可以安装在设备上，可以离线和在后台运行，并且可以与设备和其他已安装的应用程序集成。

指南
--

这些指南对 PWA 的不同方面进行了概念性的解释。它们的目的是帮助你了解 PWA 可以实现哪些事情，并提供足够的指南来帮助你了解如何实现它们。

什么是渐进式 web 应用？

PWA 的介绍，将其与传统网站和特定平台的应用程序进行比较，并概述了其主要特点。

让 PWA 易于安装

PWA 的一个决定性方面是它可以安装在设备上，然后作为一个平台特定的应用出现在用户面前，是他们设备的一个永久功能。PWA 应用可以像其他应用一样直接从操作系统中启动。在本指南中，我们将探讨“可安装”意味着什么，PWA 需要提供什么才能被安装，以及如何定制安装体验。

离线与后台操作

在本指南中，我们将介绍一组技术，使 PWA 即使在设备有间歇性网络连接时也能提供良好的用户体验，并在后台执行操作，即使主应用程序没有运行。

PWA 的最佳实践

PWA 应该适应不同的浏览器和设备，可以访问，有良好的性能，并与操作系统很好地整合。本指南提供了一个最佳实践的清单，以帮助你确保你的 PWA 尽可能运行顺利。

技术指南
----

这些指南对如何实现特定的 PWA 功能给出了具体详细的说明。

创建独立应用 (en-US)

描述了如何指定 PWA 在启动时应在自己的专用窗口中启动，而不是浏览器标签。

自定义应用的颜色 (en-US)

描述了如何为 PWA 设置背景和主题颜色。

显示徽章 (en-US)

描述了如何在 PWA 的图标上显示一个徽章：例如，让用户知道他们收到了新的消息。

将常用 app 动作暴露为快捷方式 (en-US)

描述了如何为可从操作系统的应用程序快捷菜单中启动的 PWA 暴露常见的动作。

在应用间共享数据 (en-US)

描述了 PWA 如何通过使用操作系统的应用共享机制来相互共享数据。

从你的 PWA 中触发安装 (en-US)

描述了开发者如何提供自己的用户界面来邀请用户安装他们的 PWA。

将文件与你的 PWA 建立联系 (en-US)

描述了如何在文件类型和你的 PWA 之间建立关联，以便当用户点击文件时，启动你的 PWA 来处理它。

参考
--

你将用于建立 PWA 的 web 技术的参考文件。

### Web 应用清单

Web 应用清单成员

开发人员可以使用 web 应用清单成员来描述 PWA，定制其外观，并更深入地将其整合到操作系统中。

### Service Worker API

#### 与应用进行通信

Service worker 可使用以下 API 与其相关的 PWA 客户端进行通信：

`Client.postMessage()`

允许 service worker 向其 PWA 客户端发送一个消息。

Broadcast Channel API

允许 service worker 和它的 PWA 客户端建立一个基本的双向通信通道。

#### 离线操作

Service worker 可以使用以下 API 来使你的应用程序在离线状态下工作：

`Cache`

HTTP 响应的持久性存储机制，用于存储资源，在应用程序离线时可以重复使用。

`Clients`

一个用于提供对由 service worker 控制的文件访问接口。

`FetchEvent`

一个事件，随着 PWA 客户端发出的每个 HTTP 请求而在 service worker 中派发。该事件可用于像正常一样将请求发送到服务器并保存响应以供将来使用，或者拦截请求并立即用先前缓存的响应进行响应。

#### 后台操作

以下 API 可以被 service worker 用来在后台执行任务，即使你的应用程序没有运行：

Background Synchronization API (en-US)

一旦有了稳定的网络连接，就可以将任务推迟到 service worker 中运行的一种方法。

Web Periodic Background Synchronization API (en-US)

一种注册任务的方式，以便在网络连接存在时周期性的在 service worker 中运行。

Background Fetch API (en-US)

一种用于 service worker 管理可能需要大量时间的下载的方法，如视频或音频文件。

### 其他 web API

IndexedDB

一个用于大量结构化数据的客户端存储 API，包括文件。

Badging API (en-US)

一种在应用图标上设置徽章的方法，提供低打扰性的通知。

Notifications API

一种发送通知的方式，这些通知在操作系统层面显示。

Web Share API (en-US)

一种将文本、链接、文件和其他内容分享给用户在其设备上选择的其他应用程序的机制。

Window Controls Overlay API (en-US)

为安装在桌面操作系统上的 PWA 提供的 API，能够隐藏默认的窗口标题栏，使应用能够在应用窗口的整个表面区域显示。

参见
--

* web.dev 上的渐进式 web 应用
* web.dev 上的学习 PWA
* learn.microsoft.com 上的渐进式 web 应用（2023 年 1 月 24 日）
CSS：层叠样式表
=========

**层叠样式表**（Cascading Style Sheets，缩写为 **CSS**）是一种样式表语言，用来描述 HTML 或 XML（包括如 SVG、MathML 或 XHTML 之类的 XML 分支语言）文档的呈现方式。CSS 描述了在屏幕、纸质、音频等其他媒体上的元素应该如何被渲染的问题。

CSS 是**开放 Web** 的核心语言之一，并根据 W3C 规范在 Web 浏览器中进行了标准化。以前，CSS 规范的各个部分的开发是同步进行的，这种方式允许对最新推荐的 CSS 版本进行控制。你可能已经听说过 CSS1、CSS2.1 甚至 CSS3。但是以后将不会再有 CSS3 或者 CSS4；相反，现在的一切都是没有版本号的 CSS。

在 CSS2.1 之后，规范的制定范围不断地增加，并且不同的 CSS 模块进展差异如此之大，以至于按照模块来单独进行开发并发布建议变得更加有效。W3C 现在不再对 CSS 规范进行版本控制，而是定期对 CSS 规范的最新稳定状态和各个模块的进展用快照来记录。CSS 模块现在有版本号或者级别，例如 CSS 颜色模块第五版。

主要资源
----

CSS 介绍

如果你是 Web 开发的新手，请务必阅读我们的 CSS 基础文章以学习 CSS 的含义和用法。

CSS 教程

我们的 CSS 学习区包含了丰富的教程，它们覆盖了全部基础知识，能使你在 CSS 之路上从初出茅庐到游刃有余。

CSS 参考

我们针对资深 Web 开发者编写的详细参考手册，描述了 CSS 的各个属性与概念。


#### 想要成为一名前端工程师？

我们汇总了一门课程，其中包含你实现成为前端工程师目标所需要的所有基本信息。

**点击开始**

教程
--

我们的 CSS 学习区 以多模块、零基础为特色进行 CSS 的教学——这也就意味着你不需要任何知识基础。

学习 CSS 第一步

CSS（层叠样式表）用于设置网页的样式及布局——比如，可以更改内容的字体、颜色、大小以及间距，或是将其分列，或是添加动画及赋予内容其他装饰性的特征。本模块将通过阐述基本原理，展示语法示例，以及如何与 HTML 相联系三方面，为你日后精通 CSS 提供一个友好的开端。

CSS 构建

本模块是学习 CSS 第一步的延续，相信你已经熟悉了这门语言及它的语法，并拥有一些使用它的基本经验，是时候更进一步了。本模块着眼于层叠和继承、所有可用的选择器类型、单位、大小、背景、边框、调试等等。

其目的在于先为你提供编写功能强大的 CSS 工具包，了解所有基础理论，之后再进行进一步的学习，诸如样式化文本和 CSS 布局。

CSS 为文本添加样式

在学习了 CSS 语言基础知识的基础上，你需要关注的下一个重点是样式化文本——这是使用 CSS 时最常用的场景之一。在这一模块将学习文本样式设置的基础知识，包括设置字体、粗体、斜体、行、字符间距、阴影以及其他文本属性。我们通过在页面上应用自定义的字体以及样式化的列表、链接来完善本模块。

CSS 布局

至此，我们已经了解了 CSS 的基本原理、如何设置文本样式，以及如何设置和操作内容所在的盒子。现在我们来看看如何将这些盒子放置在相对视口或另一些盒子之间的正确位置。我们到此已经覆盖了所有预备知识，因此现在能够深入学习 CSS 布局，研究不同的显示设置，学习像弹性盒（flexbox）、CSS 网格和定位这样的现代布局工具，以及一些你可能仍想了解的传统技术。

解决常见的 CSS 相关问题

本模块提供了一些内容链接，这些内容很好的回答了在创建网页时使用 CSS 所遇到的常见问题。

参考
--

* CSS 参考：针对资深 Web 开发者的详细参考手册，其中描述了 CSS 的各个属性和概念。
* CSS 关键概念：
    + 语言语法和形式
    + 特殊性（另译优先级）、继承和级联
    + 盒模型和外边距合并
    + 包含块
    + 堆叠上下文和区块格式化上下文
    + 初始值、计算值、应用值和实际值
    + CSS 简写属性
    + CSS 弹性盒子布局
    + CSS 网格布局
    + 媒体查询
    + 动画
技术手册
----

CSS 布局技术手册的目的是将一些也许你将要在自己的网站中实现的、常用的布局模式的方法汇集在一起，并且还提供了代码使你可以在项目中作为基础来使用。这些方法突出表现了同一布局规范的不同使用方式，作为开发者你可以自由选择自己想要的方式来实现。

CSS 开发工具
--------

* 万维网联盟 CSS 验证服务用于检查 CSS 是否有效。这是非常有价值的调试工具。
* Firefox 开发工具允许通过页面查看器和样式编辑器工具查看和实时编辑页面的 CSS 样式。
* Firefox 的 Web Developer 扩展也允许实时查看和编辑网站的 CSS。
自身的错误
-----

* Firefox：Firefox bug 1323667
参见
--

* CSS 演示：通过探索最新的 CSS 技术的应用实例，获得创造性的提升。
* CSS 常常应用的 Web 语言：HTML、SVG、MathML、XHTML 以及 XML。
* StackOverflow 上 CSS 相关的问题
HTTP
====

***超文本传输协议***（HTTP）是一个用于传输超媒体文档（例如 HTML）的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的，但也可以用于其他目的。HTTP 遵循经典的客户端—服务端模型，客户端打开一个连接以发出请求，然后等待直到收到服务器端响应。HTTP 是无状态协议，这意味着服务器不会在两个请求之间保留任何数据（状态）。

教程
--

通过以下指南和教程来学习如何使用 HTTP。

HTTP 概述

介绍了客户端 - 服务器端协议的基本特征：它能够做什么以及它的设计意图。

HTTP 缓存

缓存对高速 Web 站点来说是非常重要。这篇文章阐述了不同种类的缓存以及如何配置 HTTP 标头来控制它们。

HTTP Cookie

RFC 6265 定义了 cookie 的工作方式。在处理 HTTP 请求时，服务器可以发送带有响应的 `Set-Cookie` 标头。然后，对于同一服务器发起的每一个请求，客户端都会在 HTTP 请求标头中以字段 `Cookie` 的形式将 cookie 的值发送过去。也可以将 cookie 设置为在特定日期过期，或限制为特定的域和路径。

跨域资源共享（CORS）

**跨站点 HTTP 请求**就是从**另一个域**，而不是资源所在的域发起的 HTTP 请求。举例来说，在域 A（`http://domaina.example/`）的 HTML 页面上通过 `img` 元素来请求域 B（`http://domainb.foo/image.jpg`）上的图片资源。这在当今的 Web 页面上是很常见的——加载跨站点资源，包括 CSS 样式表、图片、脚本和其他资源。CORS 允许 Web 开发人员控制其站点对跨站点请求的反应。

HTTP 客户端提示（Client Hint）

**客户端提示**是一组响应标头，服务器可以使用它来主动从客户端请求关于设备、网络、用户以及用户代理指定的首选项的信息。然后，服务器可以根据客户端选择提供的信息来确定发送哪些资源。

HTTP 的演变

简单描述了从早期版本的 HTTP 到现代 HTTP/2，新兴的 HTTP/3 以及未来版本的 HTTP 这个过程中发生的变更。

Mozilla Web 安全准则

一系列用于帮助运营团队创建安全的 Web 应用程序的技巧。

HTTP 消息

描述了 HTTP/1.x 和 HTTP/2 中不同种类消息的类型和结构。

典型的 HTTP 会话

展现并解释了一个常见 HTTP 会话的流程。

HTTP/1.x 中的连接管理

描述了在 HTTP/1.x 中的三种连接管理模型，以及它们的优点和缺点。

参考
--

浏览详细的 HTTP 参考文档。

HTTP 标头

HTTP 消息标头用于描述资源或服务器或客户端的行为。标头字段保存在 IANA 注册表中。IANA 也维护一个建议的新 HTTP 消息标头的注册表。

HTTP 请求方法

可以使用 HTTP：`GET`、`POST` 方法来完成不同操作，或是一些不太常见的请求方式，像是：`OPTIONS`、`DELETE` 或 `TRACE`。

HTTP 状态码

HTTP 状态码用来表示指定的 HTTP 请求是否已成功完成。响应分为五类：信息响应、成功响应，重定向、客户端错误和服务器错误。

CSP 指令

`Content-Security-Policy` 响应标头字段允许网站管理员控制页面上哪些资源能够被用户代理程序加载。除了少数例外，此策略主要涉及指定服务器来源和脚本终端。

工具与资源
-----

有助于了解和调试 HTTP 的工具和资源。

Firefox 开发者工具

网络监视器

Mozilla Observatory

一个旨在帮助开发人员，系统管理员和安全专业人员安全地配置其站点的项目。

RedBot

用于检查与缓存相关的 HTTP 标头的工具。

浏览器的工作原理（2011）

一篇非常全面的关于浏览器内部实现与通过 HTTP 协议的请求流的文章。可以说是所有 Web 开发者的必读内容。
XPath
=====

XPath 表示 XML 路径语言。它使用非 XML 语法来提供一种灵活地定位（指向）XML 文档的不同部分的方法。它也可以用于检查文档中某个定位节点是否与某个模式（pattern）匹配。

XPath 主要用于 XSLT，但也可以作为一种更强大的方式使用——使用 `XPathExpression` (en-US) 来导航任何类似 XML 语言文档的 DOM（例如 HTML 和 SVG）。而不是依赖于 `Document.getElementById()` 或 `Document.querySelectorAll()` 方法、`Node.childNodes` 属性和其他 DOM 核心特性。

XPath 使用路径标识符（类似于 URL）通过层级结构来导航 XML 文档。它使用非 XML 语法，使得它可被用于 URI 和 XML 属性值。

**备注：** XPath 的浏览器支持差别很大；它在 Firefox 中得到来相当不错的支持（尽管没有计划进一步改进的计划），而其他浏览器则较小程度地实现了它（如果支持的话）。如果你需要 polyfill，你可以考虑使用 js-xpath 或 wicked-good-xpath。

文档
--

在 JavaScript 中使用 XPath 的简介

描述 XPath 的非 XSLT 使用。

XPath：轴

XPath 规范中定义的轴的列表和定义。轴用于描述节点之间的关系。

XPath：函数 (en-US)

核心 XPath 函数和添加到 XPath 中的特定于 XSLT 的函数的列表和描述。

使用 XSLT 转换 XML

XSLT 使用 XPath 来定位它希望转换的 XML 文档中的代码段。

XPath 代码片段 (en-US)

一些可以在你自己的代码中使用的 JavaScript 实用函数，基于 DOM Level 3 XPath API。

什么是 XSLT？

对 XSLT 和 XPath 的详尽介绍，假设读者先前不了解这些技术，并引导读者了解背景、上下文、结构、概念和介绍性的术语。

工具
--

XPath 测试工具

在线的 XPath 构建器/调试器。

相关主题
----

* XSLT、XML、DOM
* CSS 选择器和 XPath 的比较
JavaScript
==========

**JavaScript**（**JS**）是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知，但是它也被用到了很多非浏览器环境中，例如 Node.js、Apache CouchDB、Adobe Acrobat 等。进一步说，JavaScript 是一种基于原型、多范式、单线程的动态语言，并且支持面向对象、命令式和声明式（如函数式编程）风格。

JavaScript 的动态特性包括运行时对象的构造、变量参数列表、函数变量、动态脚本创建（通过 `eval`）、对象内枚举（通过 `for...in` 和 `Object` 工具方法）和源代码恢复（JavaScript 函数会存储其源代码文本，可以使用 `toString()` 进行检索）。

本部分文档将专注于 JavaScript 语言本身，而非局限于网页或其他运行环境。想要了解网页中特有的 API，请参考 Web API 以及 DOM。

ECMAScript 语言规范（ECMAScript Language Specification）（ECMA-262）和ECMAScript 国际化 API 规范（ECMAScript Internationalization API specification）（ECMA-402）是 Javascript 的标准。当某个 ECMAScript 新特性的提案已经被一些浏览器实现时，MDN 上的文档或示例就可能会涉及到这些新特性。大多数时候，处在 stages 3 和 4 的新特性会被收录到文档中，且收录时间通常早于其正式发布的时间。

不要将 JavaScript 与 Java 编程语言混淆——**JavaScript 不是“解释型 Java”**。虽然“Java”和“JavaScript”都是 Oracle 公司在美国和其他国家注册（或未注册）的商标，但是这两门语言在语法、语义与用途方面有相当大的不同。

JavaScript 的核心语言特性（大部分是纯 ECMAScript）的文档包括以下内容：

* JavaScript 指南
* JavaScript 参考

有关 JavaScript 规范和相关技术的更多信息，请参阅 JavaScript 技术概述。

**想成为一名前端网页开发人员吗？**

为了帮助你实现这个目标，我们总结了一条包含所有必要信息的学习路线。

**从这里起步**

教程
--

借助指南和教程来学习如何用 JavaScript 编程。

### 对于完全的初学者

如果你想学习 JavaScript，却从未接触过 JavaScript 或编程，你可以投入到我们的 JavaScript 主题学习区。下面列出了这部分的所有章节：

JavaScript 第一步

回答了一些基本问题，比如“JavaScript 是什么？”、“它长什么样子？”、“它可以用来做什么？”等，同时还谈及了如变量、字符串、数值、数组等 JavaScript 的关键特性。

JavaScript 基本结构

继介绍了 JavaScript 关键的基本特性后，我们需要关注常见的代码组成部分，如条件语句、循环、函数、事件等。

介绍 JavaScript 对象

如果你想进一步使用它撰写更有效率的代码，理解 JavaScript 面向对象的特性是很重要的，因此我们提供了该模块来帮助你理解它。

异步 JavaScript

介绍异步 Javascript，解释为什么这个特性是重要的，以及如何借助这个特性，有效解决诸如从服务器抓取资源这类潜在的阻塞操作。

客户端 web API

了解 API 是什么，以及如何使用那些在开发工作中常见的 API。

### JavaScript 指南

JavaScript 指南

一份更详尽的 JavaScript 指南，适用于有过 JavaScript 或其他语言编程经验的读者。

### 中级内容

理解客户端 Javascript 框架

作为现代前端 Web 开发中不可或缺的一部分，Javascript 框架给开发者提供了一套经过验证的工具，用来构建可扩展的交互式 Web 应用。在你移步一系列涵盖了当前流行前端框架的教程前，这部分内容提供了一些基础的背景知识，包括这些客户端框架是如何工作的，以及它们如何与你现有的工具集相配合。

重新介绍 JavaScript

给那些 *认为自己了解 Javascript* 的朋友们准备的 JavaScript 概述。

JavaScript 数据结构

概述 JavaScript 中涉及的数据结构。

相同、相等的比较性判断

JavaScript 提供了三种比较操作符，包括严格比较操作符`===`和非严格的比较操作符 `==`，以及 `Object.is()` 方法。

属性的可枚举性和所有权

不同的逐个访问一组对象属性的方法对可枚举性和属性所有权的处理。

闭包

闭包由一个函数与其本身所被定义的词法环境的结合而成。

### 高级内容

继承和原型链

基于原型继承被外界广泛地误解与低估，这一版块对基于原型的继承作了阐述。

JavaScript 类型化数组

Javascript 类型化数组提供了操作原始二进制数据的机制。

内存管理

JavaScript 中的内存生命周期和垃圾回收机制。

并发模型以及事件循环

JavaScript 具有基于“事件循环”的并发模型。

参考
--

浏览完整的 JavaScript 参考文档。

标准对象

例如 `Array`、`Boolean`、`Date`、`Error`、`Function`、`JSON`、`Math`、`Number`、`Object`、`RegExp`、`String`、`Map`、`Set`、`WeakMap` 、`WeakSet` 等标准内置对象。

表达式和运算符

运算符的作用`instanceof`、`typeof`、`new`、`this`，运算符优先级，以及其他运算符。

语句和声明

了解 `do-while`、`for-in`、`for-of`、`try-catch`、`let`、`var`、`const`、`if-else`、`switch` 以及其他语句和关键字的作用。

函数

学习如何使用 JavaScript 函数来开发你的应用。

类

JavaScript 类是进行面向对象编程最合适的方式。
SVG：可缩放矢量图形
===========

开始学习 SVG
--------

**可缩放矢量图形**（**Scalable Vector Graphics，SVG**）基于 XML 标记语言，用于描述二维的矢量图形。

作为一个基于文本的开放网络标准，SVG 能够优雅而简洁地渲染不同大小的图形，并和 CSS、DOM、JavaScript 和 SMIL 等其他网络标准无缝衔接。本质上，SVG 相对于图像，就好比 HTML 相对于文本。

SVG 图像及其相关行为被定义于 XML 文本文件之中，这意味着可以对它们进行搜索、索引、编写脚本以及压缩。此外，这也意味着可以使用任何文本编辑器和绘图软件来创建和编辑它们。

和传统的点阵图像模式（如 JPEG 和 PNG）不同的是，SVG 格式提供的是矢量图，这意味着它的图像能够被无限放大而不失真或降低质量，并且可以方便地修改内容，无需图形编辑器。通过使用合适的库进行配合，SVG 文件甚至可以随时进行本地化。

SVG 是由万维网联盟（W3C）自 1999 年开始开发的开放标准。

其他内容请查阅 SVG 教程。

文档
--

SVG 元素参考

了解每一种 SVG 元素的细节。

SVG 属性参考

了解每一种 SVG 属性的细节。

SVG DOM 接口参考

了解有关 SVG DOM API 的全部细节。

在 HTML 内容中应用 SVG 效果

SVG 与 HTML、CSS 和 JavaScript 一起工作。

工具
--

* SVG 测试套件
* SVG 语法校验工具
实例
--

* SVG 创作指南
* SVG 作为图片
* 使用 SMIL 的 SVG 动画
* SVG 艺术画廊
* D3（用于使用 HTML、SVG 和 CSS 可视化数据的 JavaScript 库）
教程
==

**警告：** 本页面上的链接通向各式各样的入门指导和培训教材。不管你是仅仅开始入门、学过些基础或者是个网站开发老手，你都能在这里找到有用的资源加以绝佳的练习。这些资源都来自卓有远见的公司和乐于接受开放标准网站开发人员。这是网站开发的绝佳练习而且使用一种开放内容授权，比如知识共享许可协议来提供并允许进行翻译。

对于学习 Web 的新手
------------

开始学习 Web

一系列介绍帮助你开始学习 Web 开发。你需要准备工具去创建一个简单的网页并发布你自己简单的代码。

HTML 入门
-------

### 初级课程

HTML 简介

HTML 是什么，干什么，以及其简要历史，还有一个 HTML 文档的结构是什么样子的。其后的文章会更深入 HTML 的每一个部分。

网页的基本构架 *（由出版社提供）*

学习 HTML 元素是如何组装在一起从而构成一个更大的图块的。

MDN 的 HTML 元素参考

一个 HTML 元素综合性性参考，还有不同浏览器对它们的支持。

HTML 挑战*（来自维基大学）*

参与这些挑战来巩固你的 HTML 技能。（例如，“我到底是应该使用一个 <h2> 元素还是用 <strong> 呢？”）专注于有意义的小点滴。

### 高级课程

编写出能够快速加载 HTML 页面的小贴士

优化网页，以减少你的 Web 服务器上的负载和网络连接和为游客提供一个响应迅速的网站。

HTML5 入门*（HTML5 Rocks）*

通过指南来指导使用 HTML5 特征来写代码。

HTML5 语法 *(分开的列表)*

学习那些可扩展和向后和向前兼容的有意义的标签语法。

Canvas 入门 (en-US)

学习如何使用脚本和 canvas 标签来画图。

HTML5 博士

HTML5 应用前线上的文章。

HTML5 声音标签的乐趣*（兴趣勃勃啊）*

学习如何使用 HTML audio 标签简简单单地来把声音文件放到你的网页里去。在这里包含了很多代码范例。

Javascript 入门
-------------

### 初级课程

Codecademy *（*来自 Codecademy 网站*）*

Codecademy 是学习如何编写 JavaScript 最容易的方式。它互动、有趣，你能够和你的朋友们一起来学习。

开始使用 JavaScript

JavaScript 是什么以及它如何帮助你？

JavaScript 最佳实践 *（来自 WebPlatform.org 网站）*

学习一些明显或者不是很明显的编写 JavaScript 最佳实践。

CodeAvengers*（来自 CodeAvengers.com 网站）*

Code Avengers（代码复仇者联盟）是一个有趣且高效的学习使用 HTML, CSS, and JavaScript 编写网络 apps 和游戏代码的好地方。

### 中级课程

JavaScript 再深入

针对于中等水平的开发者的关于 Javascript 编程语言的一个回顾。

Eloquent JavaScript

一本中级和高级 JavaScript 使用方法的全面指南。（译者注：简体中文版《JavaScript 编程精解》已由机械工业出版社华章公司出版发行）

必要的 JavaScript 设计模式 *(Addy Osmani)*

介绍基本的 JavaScript 设计模式。

JavaScript 编程语言 *(YUI Blog)*

Douglas Crockford 探讨了如今这个语言的情况，还有如何来实现。

### 高级课程

JavaScript 指南

一个为所有的学习者从初级到高级的全面、定期更新的 JavaScript 指南。

学习高级别的 JavaScript *(John Resig)*

John Resig 的高级 JavaScript 指南。

介绍 JavaScript DOM (Elated)

DOM 是什么，以及为什么有用？这篇文章将向你介绍 Javascript 这一强大功能。

一个麻烦的 API : DOM 理论 (YUI Blog)

Douglas Crockford 解释文件对象模型。

Javascript 进阶 (YUI Blog)

Douglas Crockford 审视代码的模式，以便程序员在创建应用的时候可以选择。

JavaScript 花园

关于 Javascript 最古怪部分的资料。

非阻塞 JavaScript 加载 (YUI Blog)

提高含 Javascript 页面加载性能的一些提示。

CSS 入门
------

### 初级课程

CSS 入门

这个教程向你介绍层叠样式表（CSS），通过具体的实例引导你熟悉基本的 CSS 功能，你可以试着在自己电脑上练习这些实例。

CSS 类选择器 (来自维基大学)

在 CSS 里类是什么？

外部 CSS (来自维基大学)

从外部样式表使用 CSS。

添加一点样式 (W3C)

入门介绍使用 CSS 样式化网页。

常见 CSS 问题

初学者一些常见问题和解答。

代码复仇者 (CodeAvengers.com)

代码复仇者用有趣、高效的方式学习使用 HTML，CSS，JavaScript 开发 Web 应用和游戏。

### 中级课程

CSS 参考

CSS 完整参考，包含 Firefox 和另外浏览器支持的详细信息。

CSS 挑战 (维基大学)

让你的 CSS 技巧更灵活，看你是否需要更多的练习。

中级 CSS 概念 (HTML.net)

分组，伪类等等。

CSS 定位 101 (A List Apart)

使用符合标准的定位，无表布局。

CSS 渐进增强 (A List Apart)

把 CSS 渐进增强结合到你的网页。

流体网格 (A List Apart)

设计根据浏览器窗口自适应布局，同时使用一个字体网格。

### 高级课程

应用 CSS 转换

使用 CSS 旋转、倾斜、缩放和变换。

CSS 过渡

CSS 过渡是 CSS3 草案规范的一部分，提供了渐变动画来改变 CSS 属性，而不是突变生效。

应用网页字体快速指南 - 使用 @font-face (HTML5 Rocks)

来自 CSS3 的 @font-face 功能，允许你以可访问的，可操作的，易扩展的方式使用 web 上的自定义字体。

开始写 CSS (David Walsh)

介绍工具和方法来写更简洁，易维护和可扩展的 CSS。
MathML
======

**Mathematical Markup Language (MathML)** 是一个用于描述数学公式、符号的一种 XML (en-US) 标记语言。

在这里你可以找到有关的文档、例子和工具来帮助你使用这个强大的技术。如果想快速了解这项技术，请看 Slides for the innovation fairs at Mozilla Summit 2013。

MathML 参考文档
-----------

MathML 元素参考

MathML 元素的细节和在桌面浏览器与移动设备浏览器上的兼容性情况。

MathML 属性参考

关于 MathML 属性的参考文档。用这些属性可以修改这些元素的显示效果。

MathML 例子

可以让你理解如何使用 MathML 的例子。

编写 MathML

编写 MathML 的一些建议和提示，包括建议使用的编辑器以及如何将编辑器的输出集成到网页中去。

查看全部...

从社区获得帮助
-------

* IRC 频道
* Mozilla 贡献者的 Wiki
* W3C Math 主页
* www-math w3.org 邮件存档
工具
--

* W3C Validator
* Mathzilla Firefox 拓展收藏集
* TeXZilla - 基于 Javascript 的 LaTeX to MathML 转换器（在线 demo，Firefox OS webapp，Firefox 拓展，在网页、JS 程序中使用，等等）
* LaTeXML - 将 LaTeX 文档转换为 HTML+MathML 网页
* Web Equation - 将手写的公式转换为 MathML 或 LaTeX
* MathJax - 跨浏览器的 JavaScript 数学渲染引擎。若要强制 MathJax 使用原生 MathML，可以试试这个 Mozilla 拓展、这个 Safari 拓展，或是这个 UserScript 脚本。
相关主题
----

* CSS
* HTML
* SVG
浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
HTML（超文本标记语言）
=============

**HTML**（超文本标记语言——HyperText Markup Language）是构成 Web 世界的一砖一瓦。它定义了网页内容的含义和结构。除 HTML 以外的其他技术则通常用来描述一个网页的表现与展示效果（如 CSS），或功能与行为（如 JavaScript）。

“超文本”（hypertext）是指连接单个网站内或多个网站间的网页的链接。链接是网络的一个基本方面。只要将内容上传到互联网，并将其与他人创建的页面相链接，你就成为了万维网的积极参与者。

HTML 使用“标记”（markup）来注明文本、图片和其他内容，以便于在 Web 浏览器中显示。HTML 标记包含一些特殊“元素”如 `<head>`、`<title>`、`<body>`、`<header>`、`<footer>`、`<article>`、`<section>`、`<p>`、`<div>`、`<span>`、`<img>`、`<aside>`、`<audio>`、`<canvas>`、`<datalist>`、`<details>`、`<embed>`、`<nav>`、`<output>`、`<progress>`、`<video>`、`<ul>`、`<ol>`、`<li>` 等等。

HTML 元素通过“标签”（tag）将文本从文档中引出，标签由在“`<`”和“`>`”中包裹的元素名组成，HTML 标签里的元素名不区分大小写。也就是说，它们可以用大写，小写或混合形式书写。例如，`<title>` 标签可以写成 `<Title>`，`<TITLE>` 或以任何其他方式。然而，习惯上与实践上都推荐将标签名全部小写。

下面的文章会帮助你更好地了解 HTML。

主要资源
----

HTML 介绍

如果你是 Web 开发新手，请务必阅读我们的 HTML 基础 文章来了解什么是 HTML 以及如何使用它。

HTML 教程

关于如何使用 HTML 的文章，教程和完整的示例，查看我们的 HTML 学习区。

HTML 参考

在我们丰富的 HTML 参考部分中，你可以找到在 HTML 中每一个元素和属性的详细信息。


#### 想要成为一名前端工程师？

我们汇总了一门课程，其中包含你实现成为前端工程师目标所需要的所有基本信息。

**点击开始**

初学者教程
-----

我们的 HTML 学习区 含有许多富有特色的模块，学习者可以在没有任何先前经验的情况下从零开始，掌握 HTML。

HTML 介绍

这一模块将为你打下基础，并为进一步的学习铺平道路。在这里，你将掌握一些重要的概念和语法，学习如何将 HTML 用于文本、如何创建超链接以及运用 HTML 去构建一个网页。

多媒体与嵌入内容

这个模块将带领你探索如何使用 HTML 在你的网页中包含多媒体内容，包括通过许多不同的方式嵌入图片，以及如何嵌入视频、音频甚至整个其他网页。

HTML 表格

如何用可理解并易于访问的形式在网页中展示表格化数据一向都是个不小的挑战。这个模块涵盖了基本的表格标记，以及一些更复杂的特性，比如实现标题和总结等。

HTML 表单

表单是构成 Web 世界的重要组成部分——它们提供了大量你所需要用来与网站进行交互所需的功能。比如注册、登录、发送评论反馈、购买商品等等。这个模块将引导你建立一个客户端／前端部分的表单。

用 HTML 解决常见问题

该部分提供了一些链接，它们指向那些你在构建 Web 页面的过程中最常见的问题的解决方法：如何处理网页标题、添加图片或视频、强调某些内容、建立基本的表单等。

高级主题
----

CORS 处理跨域图片

通过搭配 `crossorigin` 属性和适当的 CORS 标头，在 `<img>` 元素中定义的图片可以从外部来源加载并在 `<canvas>` 元素中使用，就像是从本地源加载一样。

CORS 设置属性

一些提供了对 CORS 的支持的 HTML 元素，比如 `<img>` 或 `<video>`，具有 `crossorigin` 元素属性／attribute（`crossOrigin` 对象属性／property），该属性能使你配置其跨域获取资源的请求。

使用 rel="preload" 预加载页面内容

`<link>` 元素的 `rel` 属性的值 `preload` 允许你在 HTML 的 `<head>` 部分声明一些（资源）获取请求，以指定那些在页面加载后即刻需要的资源。因此在浏览器的主渲染机制介入前，这些资源会在页面加载生命周期的早期阶段进行预加载。这样可以保证这些资源可被更早使用并减少阻塞页面初次渲染的可能性，从而提升性能。这篇文章提供了关于 `preload` 作用机制的基本指导。

参考
--

HTML 参考

HTML 由**元素**组成，每个元素都可以被多个**属性**修饰。HTML 文档通过链接相互连接。

HTML 元素参考

浏览完整的 HTML 元素列表。

HTML 属性参考

HTML 元素都含有**属性**。这些额外的属性值可以通过各种途径对元素进行配置或调整其行为。

全局属性

全局属性可以在所有 HTML 元素上进行设置，*包括那些没有在相关标准中出现的元素*。这意味着即使这些非标准元素使得文档并不符合 HTML5 标准，它们也必须允许这些属性存在。

行级元素和块级元素

HTML 元素通常是“行级”或“块级”元素。一个行级元素仅会占用由定义它的标签所包裹起来的空间。而一个块级元素将会占用其父元素（容器）的全部空间，也就是创建一个“块”。

链接类型

在 HTML 中，各种各样的链接类型被用来确立和定义两个文档之间的关系。可以设置链接类型的链接元素包括 `<a>`、`<area>` 和 `<link>`。

Web 媒体类型和格式指南

`<audio>` 和 `<video>` 元素允许你原生地播放音频和视频媒体，无需任何外部软件的支持。

HTML 内容种类

HTML 包含了几种内容，每种内容在特定的情景上下文中有效，而在其他上下文中无效。每种内容也指定了可以被它们包含的类别，以及可以或不可以在其中使用的元素。这里提供了一个关于这些类别的说明。

怪异模式和标准模式

关于怪异模式和标准模式的历史信息。

相关主题
----

使用 CSS 为 HTML 元素应用颜色

这篇文章涵盖了大多数使用 CSS 为 HTML 内容增加颜色的方式，并列举了 HTML 文档里哪些部分可以进行上色以及这一操作需要使用哪些 CSS 属性。它包含了一些示例，配色建构工具的链接，以及其他内容。