首页 > 开发工具 > VSCode > 正文

如何利用 VSCode 的 Emmet 缩写功能加速 HTML/CSS 编写?

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

如何利用 vscode 的 emmet 缩写功能加速 html/css 编写?

VSCode 的 Emmet 缩写功能,说白了,就是把那些又长又重复的 HTML/CSS 代码,用几个字符的“魔法咒语”瞬间变出来。它能让你在编写前端代码时,双手几乎不用离开键盘,大大减少敲击次数和上下文切换的烦恼,效率提升肉眼可见。对我而言,它不是一个可选项,而是编写前端代码的标配。

解决方案

利用 VSCode 的 Emmet 缩写功能,其实就是学习一套简短的语法规则,然后键入这些规则,再按下

Tab
登录后复制
键(或
Enter
登录后复制
,取决于上下文和设置),Emmet 就会自动展开成完整的代码结构。这套规则涵盖了 HTML 标签、ID、类名、属性,以及 CSS 属性和值。比如,想创建一个带有 ID 和类的 div,你只需要敲
div#myId.myClass
登录后复制
,然后
Tab
登录后复制
,瞬间就成了
<div id="myId" class="myClass"></div>
登录后复制
。CSS 方面,输入
m10
登录后复制
展开成
margin: 10px;
登录后复制
p20-30
登录后复制
变成
padding: 20px 30px;
登录后复制
,这种即时反馈和代码补全的快感,一旦习惯了,就真的回不去了。它内置在 VSCode 里,通常开箱即用,无需额外安装插件。

VSCode Emmet 缩写有哪些常用的 HTML 技巧?

在 HTML 编写上,Emmet 的强大之处在于它能让你像搭积木一样快速构建页面结构。这不仅仅是少敲几个字那么简单,它更像是一种思维模式的转变,从“我要写一个 div”变成“我要一个 div 里面有 ul,ul 里有 3 个 li,每个 li 里再放一个链接”。

比如,最基础的:

立即学习前端免费学习笔记(深入)”;

  • !
    登录后复制
    html:5
    登录后复制
    :生成一个完整的 HTML5 页面骨架。这是我新开一个 HTML 文件时,第一个会敲的。
  • 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
    登录后复制
    里面包含 5 个
    li
    登录后复制
  • div.item*3
    登录后复制
    :生成 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
登录后复制
类的大 div,里面有
header
登录后复制
main
登录后复制
main
登录后复制
里有一个
content
登录后复制
类别的
section
登录后复制
section
登录后复制
里有两个
article
登录后复制
,每个
article
登录后复制
都包含一个
h2
登录后复制
标题(带序号)和一个
p
登录后复制
段落(带序号)。这种复杂的结构,手动敲得人头皮发麻,Emmet 几秒钟搞定。

如何高效利用 Emmet 缩写编写 CSS 样式?

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;
    登录后复制
    (上下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;
    登录后复制

特殊的缩写,比如定位:

燕雀Logo
燕雀Logo

为用户提供LOGO免费设计在线生成服务

燕雀Logo 101
查看详情 燕雀Logo
  • posa
    登录后复制
    position: absolute;
    登录后复制
  • posr
    登录后复制
    position: relative;
    登录后复制
  • t0
    登录后复制
    top: 0;
    登录后复制
  • l0
    登录后复制
    left: 0;
    登录后复制

一些复合属性的缩写:

  • bd1s#ccc
    登录后复制
    border: 1px solid #ccc;
    登录后复制
  • bsd
    登录后复制
    box-shadow: ;
    登录后复制

使用 Emmet 编写 CSS 时的关键在于,你不需要先打属性名再打冒号,直接打缩写然后

Tab
登录后复制
,Emmet 会自动补全冒号和分号,并将光标定位到值的位置,大大减少了来回切换的动作。例如,当你需要给一个元素设置样式:

.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 中如何自定义和扩展?

Emmet 虽然强大,但它也不是万能的,总有些时候,默认的缩写不符合你的习惯,或者你需要一些特定的、项目相关的缩写。VSCode 提供了很好的自定义和扩展机制。

主要通过修改 VSCode 的

settings.json
登录后复制
文件来实现。你可以在这里添加自定义的 Emmet 规则。打开命令面板(
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
登录后复制
来生成一个带有 Bootstrap 风格的按钮,并提供了几种类名选项。CSS 中则定义了
dflex
登录后复制
来快速生成一个居中的 flex 容器,
fsz
登录后复制
来快速设置字体大小。
$
登录后复制
符号用于定义光标停止的位置,
$1
登录后复制
是第一个停止点,
${1:默认值}
登录后复制
可以提供默认值。
|option1,option2|
登录后复制
则是一个下拉选项列表。

2.

emmet.extensionsPath
登录后复制
:通过外部文件扩展 Emmet 如果你有大量自定义缩写,或者想在多个项目之间共享,将它们放到外部文件中是更好的选择。 首先,创建一个文件夹,比如
~/.emmet
登录后复制
(macOS/Linux)或
C:UsersYourUser.emmet
登录后复制
(Windows)。 然后,在
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
登录后复制
:在非标准文件类型中启用 Emmet 有时候,你可能在 Vue 的
<template>
登录后复制
块或者 React 的 JSX 文件中也想使用 Emmet。默认情况下,Emmet 可能不会在这些语言模式下工作。 你可以在
settings.json
登录后复制
中添加:

{
    "emmet.includeLanguages": {
        "vue-html": "html",
        "javascriptreact": "html",
        "typescriptreact": "html",
        "blade": "html" // Laravel Blade 模板
    }
}
登录后复制

这告诉 VSCode,在

vue-html
登录后复制
模式下,Emmet 应该使用
html
登录后复制
的规则来展开。

自定义 Emmet 的过程,有点像给自己量身定制一套工具。它能让你的工作流更加顺畅,但也要注意,不要过度自定义,以免在团队协作时造成困扰,或者离开你的开发环境就寸步难行。找到那个最适合自己的平衡点,才是最重要的。

以上就是如何利用 VSCode 的 Emmet 缩写功能加速 HTML/CSS 编写?的详细内容,更多请关注php中文网其它相关文章!

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号