网站深度测评
Emmet Documentation是什么网站?
Emmet Documentation 是 Emmet 官方推出的使用文档站点,面向写 HTML/CSS 的开发者,用来学习和查阅 Emmet 的缩写语法、操作命令与配置方式。
它主要提供什么
- 缩写语法:元素类型、隐式标签名、
Lorem Ipsum生成器、CSS 缩写。 - 操作命令:Expand Abbreviation、Balance、Wrap with Abbreviation、Toggle Comment、Merge Lines、Update Image Size 等。
- CSS 相关功能:厂商前缀、渐变、模糊搜索、Reflect CSS Value、图片转 data:URL。
- 配置与定制:
snippets.json、preferences.json、syntaxProfiles.json,以及过滤器(如 Yandex BEM/OOCSS)。 - 速查表:Cheat Sheet,方便快速查找写法。
谁在什么情况下用它
- 刚接触 Emmet,想知道
ul#nav>li.item$*4>a{Item $}这类写法怎么展开成 HTML。 - 已经会用基础缩写,但想查某个命令的快捷键或用途。
- 需要按团队规范定制 Emmet,比如改片段、改输出语法、加过滤器。
和同类资源比,侧重点在哪
它更像“官方参考手册”,而不是教程或插件下载页。相比编辑器自带的 Emmet 帮助,这里内容更完整,覆盖语法、命令、配置和速查表;适合当查询工具,不适合当作从零入门的系统课程。
下一步可以做什么
先看首页的演示和 Cheat Sheet,遇到具体命令再进对应章节查。需要定制时,直接看 Customization 部分的三个配置文件说明。
如何用Emmet缩写语法快速生成HTML结构?
用 Emmet 缩写语法生成 HTML 结构,核心就两步:写一段类似 CSS 选择器的缩写,然后执行 “Expand Abbreviation”(多数编辑器里按 Tab 键)把它展开成完整标签。
基本写法
- 元素直接写标签名,如
div、ul、a。 - 用
#写 id,用.写 class:div#nav、p.item。 - 用
>表示子元素,用+表示同级兄弟:ul>li、h1+p。 - 用
*表示重复次数:li*4生成 4 个li。 - 用
{}填文本内容,$会按顺序自动编号:ul#nav>li.item$*4>a{Item $}。
一个完整例子
输入:
ul#nav>li.item$*4>a{Item $}
执行 Expand Abbreviation 后,会展开成带 id="nav" 的 ul,里面 4 个带递增 class 的 li,每个 li 里有一个 a,文字依次是 Item 1 到 Item 4。文档首页的示例就是这段缩写。
展开后还能做什么
文档列出的动作可以配合使用,让生成和修改结构更快:
- Balance:向外逐层选中当前标签,方便整体调整。
- Next/Previous Edit Point:在标签之间的关键位置跳转。
- Select Next/Previous Item:快速选中同级元素。
- Toggle Comment:给整个标签加或去掉注释。
- Wrap with Abbreviation:用一段缩写把已有内容包起来。
什么情况下用它
- 手写重复列表、导航、表格结构时,用
*和$一次生成。 - 需要按设计稿快速搭骨架时,先用缩写生成层级,再填内容。
- 已有代码想加外层容器时,用 Wrap with Abbreviation 而不是手动补标签。
想改默认输出
Emmet 的生成规则可以通过 snippets.json、preferences.json、syntaxProfiles.json 定制,比如改标签默认属性或输出格式。文档还提供 Cheat Sheet,适合查具体语法。
Emmet 也被集成在多种编辑器里;如果用的是 VS Code,内置的 Emmet 支持同样使用这套缩写语法。
Emmet如何为CSS自动添加浏览器厂商前缀?
Emmet 通过 “CSS Abbreviations + Vendor Prefixes” 机制为 CSS 自动补全浏览器厂商前缀:你写标准属性,Emmet 在展开缩写时按可配置规则生成带前缀的声明。
具体怎么用
在支持 Emmet 的编辑器里输入类似 CSS 缩写并执行 “Expand Abbreviation”:
- 输入
trs(transition 的常用缩写)展开时,Emmet 可按配置生成-webkit-transition、-moz-transition、-ms-transition、-o-transition和标准transition。 - 输入
brs(border-radius)等属性时,也会按规则补全厂商前缀。 - 渐变(Gradients)属于 Emmet 文档中单独列出的能力,会生成带厂商前缀的渐变写法,而不只是标准
linear-gradient()。
前缀规则在哪里配置
Emmet 的前缀行为不是写死在展开逻辑里,而是放在可自定义的配置文件中:
preferences.json:控制 Emmet 的全局行为偏好,厂商前缀相关选项在这里调整。snippets.json:定义缩写展开成什么代码;如果某个属性的前缀写法需要改,可在这里覆盖。syntaxProfiles.json:控制输出格式,例如标签/属性写法风格。
所以“自动加前缀”并不是无条件对所有属性都加,而是取决于当前配置和该属性在 Emmet 数据中的定义。
适合谁、什么场景用
- 写需要兼容旧版 WebKit/Gecko/IE 的 CSS 时,用 Emmet 展开缩写能少手写多行前缀。
- 团队统一前缀策略时,把
preferences.json、snippets.json纳入项目配置,避免每个人生成的前缀不一致。 - 只面向现代浏览器、不需要旧前缀的项目,可以调整或关闭相关配置,避免生成冗余代码。
和其他工具的区别
Emmet 的厂商前缀是编辑器内缩写展开的一部分,发生在你输入 CSS 缩写的时刻;而 Autoprefixer 这类工具通常在构建阶段根据 browserslist 自动补前缀。前者适合手写 CSS 时快速展开,后者适合按目标浏览器范围批量处理已有样式。两者可以并存,但配置来源和生效时机不同。
下一步
打开 Emmet 文档中的 CSS Abbreviations 和 Vendor prefixes 两节,确认你所用编辑器加载的是哪份 preferences.json / snippets.json,再按项目需要调整前缀列表。
如何自定义Emmet的snippets.json和preferences.json?
Emmet 的自定义分两层:snippets.json 决定“缩写展开成什么”,preferences.json 决定“Emmet 的行为怎么变”。两者都通过编辑器里的 Emmet 配置项加载,而不是直接改插件安装目录里的文件。
snippets.json:定义和扩展缩写
用途是添加自己的缩写,或覆盖内置缩写的输出。Emmet 官方文档把它列在 Customization 下,与 preferences.json、syntaxProfiles.json 并列。
典型结构是分语法(html、css 等)的键值对:
{
"html": {
"snippets": {
"mycard": "div.card>h2{标题}+p{正文}"
}
}
}
在支持自定义 snippets 路径的编辑器里,把该文件路径填进 Emmet 设置即可;也可以直接在编辑器的 Emmet 设置中写内联对象。
需要覆盖内置行为时,用同名 key 覆盖,例如自定义 ! 或 html:5 的输出模板。
preferences.json:调整行为
用途是改变展开结果的格式和解析规则,常见项包括:
"css.propertyEnd"、"css.valueSeparator":CSS 输出格式"html.attrQuotes"、"html.selfClosingStyle":HTML 属性引号与自闭合风格"output.format"、"output.formatLeafNode":是否输出格式化后的缩进
写法同样是 JSON 对象,路径配置方式与 snippets 一致。
使用情境
- 团队统一代码风格:把
preferences.json放进项目并纳入版本控制,成员在编辑器里指向同一份配置。 - 项目有固定组件结构:把常用卡片、表单、列表结构写成 snippets,减少重复敲标签。
- 需要临时试验:先用编辑器内联设置验证,稳定后再抽成文件。
选择条件
如果只是想少打几个标签,先加 snippets;如果展开结果的引号、缩进、自闭合方式不符合项目规范,改 preferences;如果涉及不同语法的输出模板差异,再考虑 syntaxProfiles.json。
下一步
- 确认所用编辑器支持自定义 snippets/preferences 路径(VS Code 在 Emmet 设置里,Sublime、Atom 等各有对应配置项)。
- 新建两个 JSON 文件,先各写一条最小配置验证生效。
- 验证通过后再逐步迁移团队常用缩写与格式规则。
Emmet 官方文档还提供 Cheat Sheet 和 Actions 列表,可在写缩写前先确认内置语法,避免重复定义。
Emmet的Expand Abbreviation、Balance和Wrap with Abbreviation等操作分别怎么用?
Emmet 把“手写整段 HTML/CSS”换成“写缩写再展开”,Expand Abbreviation、Balance、Wrap with Abbreviation 是其中最常用的三个操作,分别对应“生成代码”“选中结构”“包裹结构”。
Expand Abbreviation:把缩写展开成代码
用途是把 CSS 风格的表达式动态解析为 HTML 或 CSS。例如输入 ul#nav>li.item$*4>a{Item $},执行 Expand Abbreviation(通常按 Tab 键),就会生成带 4 个列表项和链接的 <ul id="nav"> 结构。
适合场景:新建页面骨架、批量生成重复列表项、写 CSS 缩写(如渐变、厂商前缀)。它和普通 snippet 的区别是:不用预先定义,输出会随你输入的缩写变化。
Balance:向外选中匹配的标签
用途是从光标位置向外逐层选中匹配的标签对。资料演示中连续执行 Balance(Cmd-D)会一层层扩大选区。
适合场景:想整体复制、删除或移动某个 <div>、<section> 时,不用手动找闭合标签,直接按层级选中。嵌套越深越省事。
Wrap with Abbreviation:用缩写包裹选中内容
用途是先选中一段代码,再输入一个缩写,把选中内容包进这个缩写生成的结构里。例如选中若干行文本,输入 div.wrapper>p,就能把它们包进新的容器。
适合场景:给已有内容加外层容器、把散落的元素批量放进列表项或链接里。
其他常配合使用的操作
- Go to Matching Pair:在开闭标签之间跳转。
- Go to Edit Point:在标签名、属性值等重要位置间快速移动(Next/Previous Edit Point)。
- Select Item:按语法单元选中内容(Select Next/Previous Item)。
- Toggle Comment:快速注释整个标签。
- Update Image Size:根据图片路径自动补上宽高。
- Evaluate Math Expression、Increment/Decrement Number:在样式里直接算数、改数值。
怎么选
| 你想做的事 | 用哪个 |
|---|---|
| 从零生成 HTML/CSS 结构 | Expand Abbreviation |
| 选中已有代码的某个完整标签 | Balance |
| 给已有内容套一层新结构 | Wrap with Abbreviation |
| 在标签内部快速定位修改点 | Go to Edit Point |
这些操作在支持 Emmet 的编辑器里通过命令面板或快捷键调用,具体键位因编辑器而异;官方文档提供了 Cheat Sheet 和 Actions 列表,可以对照自己编辑器的绑定来设置。
Emmet支持哪些CSS缩写和渐变语法?
Emmet 的 CSS 缩写支持供应商前缀和渐变写法。按官方文档,这两类分别对应 “CSS Abbreviations” 下的 “Vendor prefixes” 和 “Gradients” 两个条目。
CSS 缩写的基本用途
在 CSS 文件里输入类似属性的简写,再用 “Expand Abbreviation” 动作展开,就能得到完整声明。文档把 CSS Abbreviations 单独列为一类,说明它和 HTML 缩写是两套解析规则。
供应商前缀
Emmet 的 “Vendor prefixes” 功能用于生成带浏览器前缀的属性。写缩写时会按需补出 -webkit-、-moz-、-ms-、-o- 等前缀版本,省去逐个手写。适合需要兼容旧浏览器、或写过渡属性、变换、动画等常带前缀的场景。
渐变语法
“Gradients” 是 Emmet 对 CSS 渐变缩写的专门支持,用来快速生成 linear-gradient、radial-gradient 一类声明,并同样处理前缀。例如需要给按钮加一个从上到下的背景渐变时,用渐变缩写展开比手写整段 background: linear-gradient(...) 更快,也更容易保持前缀一致。
相关能力
文档在 Actions 中还列出 “Reflect CSS Value”,用于把一个属性的值同步到其他带前缀的属性上,配合前缀和渐变使用可以减少重复修改。
怎么查具体写法
Emmet 的缩写语法随版本变化,最稳妥的是看官方 Cheat Sheet 和 Customization 里的 snippets.json、preferences.json、syntaxProfiles.json:前者给现成缩写,后三者说明如何自定义或覆盖默认行为。若要确认某个渐变或前缀缩写的当前写法,以 Emmet Documentation 的 Cheat Sheet 为准。
用户评价(0)