Visual Studio Code 中的 HTML

Visual Studio Code 对 HTML 编程提供了开箱即用的基本支持。它具备语法高亮、基于 IntelliSense 的智能补全以及可定制的格式化功能。VS Code 还包含出色的 Emmet 支持。

IntelliSense

在键入 HTML 时,我们会通过 HTML IntelliSense 提供建议。在下图中,你可以看到建议的 HTML 元素闭合标签 </div> 以及特定于上下文的建议元素列表。

HTML IntelliSense

HTML 还支持文档符号(Document symbols),允许你通过 id 和类名快速导航到 DOM 节点。

你还可以处理嵌入式的 CSS 和 JavaScript。不过需要注意,不会跟踪来自其他文件的 script 和 style 引入,语言支持只会检查 HTML 文件的内容。

你可以随时按 ⌃Space (Windows, Linux Ctrl+Space) 来触发建议。

你还可以控制哪些内置的代码补全提供程序处于活动状态。如果你不想看到相应的建议,可以在用户或工作区设置中覆盖它们。

// Configures if the built-in HTML language suggests HTML5 tags, properties and values.
"html.suggest.html5": true

闭合标签

键入开始标签的 > 时,标签元素会自动闭合。

HTML Close1

输入闭合标签的 / 时,会自动插入匹配的闭合标签。

HTML Close2

你可以通过以下设置关闭自动闭合标签功能

"html.autoClosingTags": false

自动更新标签

修改标签时,关联编辑功能会自动更新匹配的闭合标签。此功能为可选功能,可以通过设置来启用

"editor.linkedEditing": true

颜色选择器

VS Code 颜色选择器 UI 现在可用于 HTML style 区域。

color picker in HTML

它支持配置从编辑器中拾取的颜色的色相、饱和度和不透明度。它还允许通过点击选择器顶部的颜色字符串来切换不同的颜色模式。当你将鼠标悬停在颜色定义上时,选择器便会显示。

悬停

将鼠标移动到 HTML 标签或嵌入的样式和 JavaScript 上,以获取有关光标所在符号的更多信息。

HTML Hover

验证

HTML 语言支持会对所有嵌入的 JavaScript 和 CSS 执行验证。

你可以通过以下设置关闭该验证

// Configures if the built-in HTML language support validates embedded scripts.
"html.validate.scripts": true,

// Configures if the built-in HTML language support validates embedded styles.
"html.validate.styles": true

折叠

你可以使用行号与行首之间空白槽上的折叠图标来折叠源代码区域。所有 HTML 元素以及源代码中的多行注释都支持代码折叠。

此外,你还可以使用以下区域标记来定义折叠区域:<!-- #region --><!-- #endregion -->

如果你倾向于为 HTML 切换到基于缩进的折叠,请使用

"[html]": {
    "editor.foldingStrategy": "indentation"
},

在集成浏览器中预览 HTML 文件

你可以在 VS Code 内部的集成浏览器中预览 HTML 文件。

要在集成浏览器中打开 HTML 文件,请在“文件资源管理器”或编辑器选项卡中右键单击该文件,然后选择在集成浏览器中打开。当 HTML 文件处于活动状态时,你也可以选择编辑器标题栏中的显示预览图标。

在你修改 HTML 文件时,预览会实时更新以反映你的更改。

格式化

为了改善 HTML 源代码的格式,你可以使用格式化文档命令 ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) 来格式化整个文件,或者使用格式化选中内容 ⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F) 来仅格式化选定的文本。

HTML 格式化程序基于 js-beautify。该库提供的格式化选项已公开在 VS Code 的设置

  • html.format.wrapLineLength 在 VS Code 中打开 在 VS Code Insiders 中打开 :每行的最大字符数。
  • html.format.unformatted 在 VS Code 中打开 在 VS Code Insiders 中打开 :不应重新格式化的标签列表。
  • html.format.contentUnformatted 在 VS Code 中打开 在 VS Code Insiders 中打开 :不应重新格式化其内容的标签列表(逗号分隔)。
  • html.format.extraLiners 在 VS Code 中打开 在 VS Code Insiders 中打开 :其前应多出一个空行的标签列表。
  • html.format.preserveNewLines 在 VS Code 中打开 在 VS Code Insiders 中打开 :是否应保留元素之前现有的换行符。
  • html.format.maxPreserveNewLines 在 VS Code 中打开 在 VS Code Insiders 中打开 :在一个块中要保留的最大换行符数量。
  • html.format.indentInnerHtml 在 VS Code 中打开 在 VS Code Insiders 中打开 :缩进 <head><body> 部分。
  • html.format.wrapAttributes 在 VS Code 中打开 在 VS Code Insiders 中打开 :属性的换行策略
    • auto:超出行长度时换行
    • force:换行所有属性,第一个除外
    • force-aligned:换行所有属性(第一个除外)并对齐属性
    • force-expand-multiline:换行所有属性
    • aligned-multiple:超出行长度时换行,垂直对齐属性
    • preserve:保留属性的换行
    • preserve-aligned:保留属性的换行但进行对齐
  • html.format.wrapAttributesIndentSize 在 VS Code 中打开 在 VS Code Insiders 中打开 :在 html.format.wrapAttributes 在 VS Code 中打开 在 VS Code Insiders 中打开 中使用 force alignedaligned multiple 时的对齐大小,或者使用 null 以使用默认缩进大小。
  • html.format.templating 在 VS Code 中打开 在 VS Code Insiders 中打开 :支持 django、erb、handlebars 和 php 模板语言标签。
  • html.format.unformattedContentDelimiter 在 VS Code 中打开 在 VS Code Insiders 中打开 :在此字符串之间保持文本内容连在一起。
提示

格式化程序不会格式化 html.format.unformatted 在 VS Code 中打开 在 VS Code Insiders 中打开 html.format.contentUnformatted 在 VS Code 中打开 在 VS Code Insiders 中打开 设置中列出的标签。除非排除了 'script' 标签,否则嵌入的 JavaScript 会被格式化。

应用市场有几个替代的格式化程序可供选择。如果你想使用其他格式化程序,请在设置中定义 "html.format.enable": false 来关闭内置的格式化程序。

Emmet 代码片段

VS Code 支持 Emmet 代码片段扩展。Emmet 缩写与编辑器自动完成列表中的其他建议和代码片段一起列出。

Emmet HTML support built-in

提示

有关有效的缩写,请参阅 Emmet 速查表的 HTML 部分。

如果你想在其他语言中使用 HTML Emmet 缩写,可以通过 emmet.includeLanguages 在 VS Code 中打开 在 VS Code Insiders 中打开 设置将某个 Emmet 模式(例如 csshtml)与其它语言关联。该设置接受一个语言标识符,并将其与受 Emmet 支持的模式的语言 ID 进行关联。

例如,要在 JavaScript 内部使用 Emmet HTML 缩写

{
  "emmet.includeLanguages": {
    "javascript": "html"
  }
}

我们还支持用户自定义代码片段

HTML 自定义数据

你可以通过声明式的自定义数据格式扩展 VS Code 的 HTML 支持。通过将 html.customData 在 VS Code 中打开 在 VS Code Insiders 中打开 设置为遵循自定义数据格式的 JSON 文件列表,你可以增强 VS Code 对新 HTML 标签、属性和属性值的理解。然后,VS Code 将为所提供的标签、属性和属性值提供语言支持,例如补全和悬停信息。

你可以在 vscode-custom-data 仓库中阅读更多关于使用自定义数据的信息。

HTML 扩展

安装扩展以添加更多功能。转到扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X)) 并键入 'html',以查看有助于创建和编辑 HTML 的相关扩展列表。

提示

在上方选择一个扩展卡片以阅读其描述和评论,从而决定哪个扩展最适合你。在应用市场中查看更多信息。

下一步计划

继续阅读以了解有关以下内容的更多信息

  • CSS、SCSS 和 Less - VS Code 对 CSS(包括 Less 和 SCSS)提供了一流的支持。
  • Emmet - 了解 VS Code 强大的内置 Emmet 支持。
  • Emmet 官方文档 - Emmet,面向 Web 开发人员的必备工具包。
English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.