编写 HTML 代码示例的指南

以下指南涵盖了如何为 MDN Web Docs 编写 HTML 示例代码。

HTML 代码示例的通用指南

选择格式

关于正确缩进、空格和行长度的看法一直备受争议。关于这些话题的讨论会分散创建和维护内容的注意力。

在 MDN Web 文档中,我们使用 Prettier 作为代码格式化程序,以保持代码风格一致(并避免离题讨论)。您可以查阅我们的 配置文件 以了解当前规则,并阅读 Prettier 文档

Prettier 格式化所有代码并保持风格一致。然而,还有一些额外的规则需要您遵循。

完整的 HTML 文档

注意:本节中的指南仅适用于需要显示完整 HTML 文档的情况。通常,代码片段足以演示一个功能。当使用 EmbedLiveSample 宏时,只需包含 HTML 代码片段;它将在显示时自动插入到完整的 HTML 文档中。

文档类型

您应该使用 HTML5 doctype

html
<!doctype html>

文档语言

使用 lang 属性在 <html> 元素上设置文档语言。

html
<html lang="en-US"></html>

这有利于可访问性和搜索引擎,有助于内容本地化,并提醒人们使用最佳实践。

文档字符集

您还应该像这样定义文档的字符集

html
<meta charset="utf-8" />

除非有非常充分的理由,否则应使用 UTF-8;它几乎可以满足您文档中使用任何语言的所有字符需求。

视口 meta 标签

最后,您应该始终将视口 meta 标签添加到 HTML 的 <head> 中,以使代码示例在移动设备上更有可能正常工作。您应该在文档中至少包含以下内容,并且可以根据需要稍后进行修改。

html
<meta name="viewport" content="width=device-width" />

有关更多详细信息,请参阅 <meta name="viewport">

属性

您应该将所有属性值放在双引号中。尽管 HTML5 允许省略引号,但包含它们会使标记更整洁、更易读。例如,这样更好

html
<img src="images/logo.jpg" alt="A circular globe icon" class="no-border" />

…而不是这样

html
<img src=images/logo.jpg alt=A circular globe icon class=no-border>

省略引号也可能导致问题。在上面的示例中,alt 属性将被解释为多个属性,因为没有引号来指定“A circular globe icon”是一个单独的属性值。

布尔属性

不要为布尔属性包含值(但要为 枚举属性包含值);您只需写入属性名称即可设置它。例如,您可以编写

html
<input required />

这完全可以理解并且运行正常。如果存在布尔 HTML 属性,则其值为 true。虽然包含值也可以工作,但这不是必需的,并且是不正确的。

html
<input required="required" />

MDN 上的大小写约定

所有不区分大小写的构造都使用小写,包括 doctype 声明、元素名称以及属性名称/值。这可以创建一致的外观,并加快标记编写速度。

html
<p class="nice">This looks nice and neat</p>
html
<P CLASS="WHOA-THERE">Why is my markup shouting?</P>

类和 ID 名称

使用语义化的类/ID 名称,并使用连字符(kebab case)分隔多个单词。不要使用 camel case。例如

html
<p class="editorial-summary">Blah blah blah</p>
html
<p class="bigRedBox">Blah blah blah</p>

字符引用

不要不必要地使用 字符引用 — 尽可能使用字面字符(您仍然需要转义尖括号和引号等字符)。

例如,您可以只写

html
<p>© 2018 Me</p>

而不是

html
<p>&copy; 2018 Me</p>

HTML 元素

关于在 MDN Web Docs 上编写 HTML 元素有一些规则。遵守这些规则可以产生对元素及其组件的一致描述,并确保正确链接到详细文档。

  • 元素名称:使用 HTMLElement 宏,它会创建一个链接到该元素的 MDN Web Docs 页面。例如,编写 {{HTMLElement("title")}} 会生成 "<title>"。如果您不想创建链接,请**将名称括在尖括号中**并使用“Inline Code”样式(例如,<title>)。
  • 属性名称:使用“Inline Code”样式将属性名称放在 code font 中。此外,当属性与解释其功能的说明相关联时,或者当它在页面上首次使用时,请将其设置为粗体
  • 属性值:使用“Inline Code”样式将 <code> 应用于属性值,除非代码示例的语法需要,否则不要在字符串值周围使用引号。例如,“当 <input> 元素的 type 属性设置为 emailtel 时……”