VSCode的Emmet缩写功能通过简短语法规则快速生成HTML/CSS代码,如div#id.class生成带ID和类的div,m10展开为margin:10px;支持嵌套、重复、自定义缩写,并可通过settings.json扩展,大幅提升前端开发效率。

VSCode 的 Emmet 缩写功能,说白了,就是把那些又长又重复的 HTML/CSS 代码,用几个字符的“魔法咒语”瞬间变出来。它能让你在编写前端代码时,双手几乎不用离开键盘,大大减少敲击次数和上下文切换的烦恼,效率提升肉眼可见。对我而言,它不是一个可选项,而是编写前端代码的标配。
利用 VSCode 的 Emmet 缩写功能,其实就是学习一套简短的语法规则,然后键入这些规则,再按下
Tab
Enter
div#myId.myClass
Tab
<div id="myId" class="myClass"></div>
m10
margin: 10px;
p20-30
padding: 20px 30px;
在 HTML 编写上,Emmet 的强大之处在于它能让你像搭积木一样快速构建页面结构。这不仅仅是少敲几个字那么简单,它更像是一种思维模式的转变,从“我要写一个 div”变成“我要一个 div 里面有 ul,ul 里有 3 个 li,每个 li 里再放一个链接”。
比如,最基础的:
立即学习“前端免费学习笔记(深入)”;
!
html:5
div
<div></div>
p
<p></p>
a
<a href=""></a>
更进一步,结合 ID 和 Class:
div#header
<div id="header"></div>
div.container
<div class="container"></div>
div#main.wrapper
<div id="main" class="wrapper"></div>
嵌套与兄弟元素:
ul>li
<ul><li></li></ul>
div+p
<div></div><p></p>
header+main+footer
<header></header><main></main><footer></footer>
重复元素:
ul>li*5
ul
li
div.item*3
item
div
带文本内容的元素:
p{Hello World}<p>Hello World</p>
a[href="https://example.com"]{Visit Us}<a href="https://example.com">Visit Us</a>
结合起来,你可以这样:
div.wrapper>header+main>section.content>article*2>h2{Title $}+p{Paragraph $}wrapper
header
main
main
content
section
section
article
article
h2
p
Emmet 在 CSS 领域的表现同样出色,它将常用的 CSS 属性和值简化到了极致,让你在样式文件中飞速穿梭。很多时候,你甚至不需要记住完整的属性名,几个字母就能搞定。
一些高频使用的缩写:
m
margin: ;
p
padding: ;
d
display: ;
pos
position: ;
bgc
background-color: ;
bd
border: ;
fl
float: ;
fz
font-size: ;
lh
line-height: ;
w
width: ;
h
height: ;
结合数值和单位: Emmet 智能识别数字和常见的单位。
m10
margin: 10px;
p20-30
padding: 20px 30px;
w100p
width: 100%;
h50v
height: 50vh;
fz16
font-size: 16px;
lh1.5
line-height: 1.5;
c#f00
color: #f00;
bg#eee
background: #eee;
特殊的缩写,比如定位:
posa
position: absolute;
posr
position: relative;
t0
top: 0;
l0
left: 0;
一些复合属性的缩写:
bd1s#ccc
border: 1px solid #ccc;
bsd
box-shadow: ;
使用 Emmet 编写 CSS 时的关键在于,你不需要先打属性名再打冒号,直接打缩写然后
Tab
.card {
dfl // display: flex;
jcfs // justify-content: flex-start;
aic // align-items: center;
m10 // margin: 10px;
p15 // padding: 15px;
bgc#f9f9f9 // background-color: #f9f9f9;
bd1s#ddd // border: 1px solid #ddd;
br5 // border-radius: 5px;
}这种编写方式,熟练之后,你会发现写 CSS 简直像在打字游戏。
Emmet 虽然强大,但它也不是万能的,总有些时候,默认的缩写不符合你的习惯,或者你需要一些特定的、项目相关的缩写。VSCode 提供了很好的自定义和扩展机制。
主要通过修改 VSCode 的
settings.json
Ctrl+Shift+P
Cmd+Shift+P
Preferences: Open User Settings (JSON)
在
settings.json
emmet.syntaxProfiles
emmet.preferences
emmet.extensionsPath
emmet.snippets
1. emmet.snippets
settings.json
html
css
{
"emmet.snippets": {
"html": {
"defs": "<dl><dt>${1}</dt><dd>${2}</dd></dl>",
"btn": "<button class="btn btn-${1|primary,secondary,success,danger,warning,info,light,dark|}">${2:Button}</button>"
},
"css": {
"dflex": "display: flex; justify-content: center; align-items: center;",
"fsz": "font-size: ${1:16}px;"
}
}
}这里我定义了
defs
btn
dflex
fsz
$
$1
${1:默认值}|option1,option2|
2. emmet.extensionsPath
~/.emmet
C:UsersYourUser.emmet
settings.json
{
"emmet.extensionsPath": [
"C:\Users\YourUser\.emmet" // Windows 示例
// 或者 "/Users/youruser/.emmet" // macOS 示例
]
}在这个文件夹里,你可以创建
snippets.json
emmet.snippets
// snippets.json
{
"html": {
"mycard": "<div class="card"><div class="card-header">${1:Header}</div><div class="card-body">${2:Body}</div></div>"
},
"css": {
"gridc": "display: grid; grid-template-columns: repeat(${1:2}, 1fr); gap: ${2:10}px;"
}
}这样,Emmet 就会加载这些自定义的缩写了。
3. emmet.includeLanguages
<template>
settings.json
{
"emmet.includeLanguages": {
"vue-html": "html",
"javascriptreact": "html",
"typescriptreact": "html",
"blade": "html" // Laravel Blade 模板
}
}这告诉 VSCode,在
vue-html
html
自定义 Emmet 的过程,有点像给自己量身定制一套工具。它能让你的工作流更加顺畅,但也要注意,不要过度自定义,以免在团队协作时造成困扰,或者离开你的开发环境就寸步难行。找到那个最适合自己的平衡点,才是最重要的。
以上就是如何利用 VSCode 的 Emmet 缩写功能加速 HTML/CSS 编写?的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号