Emmet 插件使用教程

article/2025/9/22 9:48:03

1)使用 Emmet 生成 HTML 的语法详解
生成 HTML 文档初始结构

HTML 文档的初始结构,就是包括 doctype、html、head、body 以及 meta 等内容。你只需要输入一个 “!” 就可以生成一个 HTML5 的标准文档初始结构,你没有看错,输入一个感叹号(当然是英文符号),然后摁下 TAB 键,就会发现生成了下面的结构:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8">< title>Document</title>
</head>
<body>
<!-- code... -->
</body>
</html>

这就是一个 HTML5 的标准结构,也是默认的 HTML 结构。如果你想生成 HTML4 的过渡型结构,那么输入指令 html:xt 即可生成如下结构:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">< title>Document</title>
</head>
<body></body>
</html>

Emmet 会自动把 doctype 给你补全了,怎么样,这样的功能会不会让你动心?简单总结一下常用的 HTML 结构指令:

html:5 或者 ! 生成 HTML5 结构
html:xt 生成 HTML4 过渡型
html:4s 生成 HTML4 严格型
生成带有 id 、class 的 HTML 标签

Emmet 的语法有点类似 CSS 的语法,生成 id 为 aaa 的 div 标签,我们只需要编写下面指令:

#aaa

Emmet 默认的标签为 div ,如果我们不给出标签名称的话,默认就生成 div 标签。如果编写一个 class 为 bbb 的 span 标签,我们需要编写下面指令:

span.bbb

然后就生成了对应的结构。同理,如果想要编写一个 id 为 ccc 的 class 为 ddd 的 ul 标签,我们可以这样写:

ul#ccc.ddd

很简单吧?比你用手写 id 、class 方便多了吧

生成后代:>

大于号表示后面要生成的内容是当前标签的后代。例如我要生成一个无序列表,而且被 class 为 aaa 的 div 包裹,那么可以使用下面指令:

div.aaa>ul>li

可以生成如下的结构:

<div class="aaa"><ul><li></li></ul>
</div>

生成兄弟:+

上面是生成下级元素,如果想要生成平级的元素,就需要使用 + 号。例如下面指令:

div+p+bq

就可以生成如下的 HTML 结构:

<div></div>
<p></p>
<blockquote></blockquote>

生成上级元素:^

上级 (Climb-up)元素是什么意思呢?前面咱们说过了生成下级元素的符号“>”,当使用 div>ul>li 的指令之后,再继续写下去,那么后续内容都是在 li 下级的。如果我想编写一个跟 ul 平级的 span 标签,那么我需要先用 “^” 提升一下层次。例如:

div>ul>li^span

就会生成如下结构:

<div><ul><li></li></ul><span></span>
</div>

如果我想相对与 div 生成一个平级元素,那么就再上升一个层次,多用一个“^”符号:

div>ul>li^^span

重复生成多份:*

特别是一个无序列表,ul 下面的 li 肯定不只是一份,通常要生成很多个 li 标签。那么我们可以直接在 li 后面 * 上一些数字:

ul>li*5

这样就直接生成五个项目的无序列表了。如果想要生成多份其他结构,方法类似。

生成分组:()

用括号进行分组,这样可以更加明确要生成的结构,特别是层次关系,例如:

div>(header>ul>li*2>a)+footer>p

这样很明显就可以看出层次关系和并列关系,生成如下结构:

<div><header><ul><li><a href=""></a></li><li><a href=""></a></li></ul></header><footer><p></p></footer>
</div>

此外,分组还可以很方便的结合上面说的 "*" 符号生成重复结构:

(div>dl>(dt+dd)*3)+footer>p

生成结构:

<div><dl><dt></dt><dd></dd><dt></dt><dd></dd><dt></dt><dd></dd></dl>
</div>
<footer><p></p>
</footer>

生成自定义属性:[attr]

a 标签中往往需要附带 href 属性和 title 属性,如果我们想生成一个 href 为 http://www.yunxiu.org/blog ,title 为“我爱水煮鱼”的 a 标签,可以这样写:

a[href="http://www.yunxiu.org/blog" title="云袖网"]

其他标签和属性都类似。

对生成内容编号:$

例如无序列表,我想为五个个 li 增加一个 class 属性值 item1 ,然后依次递增从 1-5,那么就需要使用 $ 符号:

ul>li.item$*5

这样就生成了如下结构:

<ul><li class="item1"></li><li class="item2"></li><li class="item3"></li><li class="item4"></li><li class="item5"></li>
</ul>

$ 就表示一位数字,只出现一个的话,就从1开始。如果出现多个,就从0开始。如果我想生成三位数的序号,那么要写三个 $:

ul>li.item$$$*5

输出:

<ul><li class="item001"></li><li class="item002"></li><li class="item003"></li><li class="item004"></li><li class="item005"></li>
</ul>

只能这样单调的生成序号?对于强大的 Emmet 来说,肯定不会会了,我们也可以在 $ 后面增加 @- 来实现倒序排列:

ul>li.item$@-*5

生成如下结构:

<ul><li class="item5"></li><li class="item4"></li><li class="item3"></li><li class="item2"></li><li class="item1"></li>
</ul>

同样,我们也可以使用 @N 指定开始的序号:

ul>li.item$@3*5

这样就会从 3 开始排序,生成如下代码:

<ul><li class="item3"></li><li class="item4"></li><li class="item5"></li><li class="item6"></li><li class="item7"></li>
</ul>

配合上面倒序输出,可以这样写:

ul>li.item$@-3*5

生成的就是以 3 为底倒序:

<ul><li class="item7"></li><li class="item6"></li><li class="item5"></li><li class="item4"></li><li class="item3"></li>
</ul>

生成文本内容:{}

上面讲解了如何生成 HTML 标签,那里面的内容呢?当然也可以生成了:

a[href="http://www.yunxiu.org/blog"]{点击这里到 云袖网}

这样就生成了一个到我爱水煮鱼的超链接了。在生成内容的时候,特别要注意前后的符号关系,虽然 a>{Click me} 和 a{Click me} 生成的结构是相同的,但是加上其他的内容就不一定了,例如:

<!-- a{click}+b{here} -->
<a href="">click</a><b>here</b><!-- a>{click}+b{here} -->
<a href="">click<b>here</b></a>

这样就生成了完全不同的结构,注意这些小细节哦。

不要有空格

在写指令的时候,你可能为了代码的可读性,使用一些空格什么的排版一下。这就会导致代码无法使用。例如下面这句:

(header > ul.nav > li*5) + footer

而去掉空格之后,就可以正常执行生成结构了。

2)Emmet 快速编写 CSS 的技巧

首先,Sublime Text 2 已经提供了比较强大的 CSS 样式所写方法来提高 CSS 编写效率。例如编写 position: absolute; 这一个属性,我们只需要输入 posa 这四个字母即可。它会弹出缩写样式的提示:
css.jpg

简写属性和属性值

如果你想生成 width:100px; 你只需要输入 w100 就可以了,因为 Emmet 的默认设置 w 是 width 的缩写,后面紧跟的数字就是属性值。默认的属性值单位是 px ,你可以在值的后面紧跟字符生成单位,可以是任意字符。例如,w100foo 会生成 width:100foo; 这样一条语句。你同样也可以简写属性单位,如果你紧跟属性值后面的字符是 p ,那么将会生成width:100%; 这样的语句,其中 p 表示百分比单位。与此类似的还有:e → em; x → ex

例如 margin 这样的属性,可能并不是一个属性值,生成多个属性值需要用横杠(-)连接两个属性值,因为 Emmet 的指令中是不允许空格的。例如使用 m10-20 这条命令可以生成margin: 10px 20px; 这样一条语句。如果你想生成负值,多加一条横杠即可。需要注意的是,如果你对每个属性都指定了单位,那么不需要使用横杠分割。例如使用 m10ff20ff 这条命令可以生成 margin: 10ff 20ff; 这条语句,如果你在 20ff 前面加了横杠的话,20ff 就会变成负值了。

如果你想一次生成多条语句,可以使用 '+' 连接两条语句,例如使用 h10p+m5e 可以生成 height: 10%;margin: 5em; 这两条语句。

颜色值也是可以快速生成的,例如 c#3 → color: #333;,更复杂一点的,使用 bd5#0s 可以生成 border: 5px #000 solid; 这样一句。下面是规则:

#1 → #111111
#e0 → #e0e0e0
#fc0 → #ffcc00

生成 !important 这条语句也当然很简单,只需要一个 '!' 就可以了。

增加额外的选项

使用 @f 即可生成 CSS3 中的 font-face 的代码结构:

@font-face {
font-family:;
src:url();
}

但是这个结构太简单,不包含一些其他的 font-face 的属性,诸如 background-image、 border-radius、 font、@font-face、 text-outline、 text-shadow 等属性,我们可以在生成的时候输入 '+' 生成增强的结构,例如我们可以输入 @f+ 命令,即可输出选项增强版的 font-face 结构:

@font-face {font-family: 'FontName';src: url('FileName.eot');src: url('FileName.eot?#iefix') format('embedded-opentype'),url('FileName.woff') format('woff'),url('FileName.ttf') format('truetype'),url('FileName.svg#FontName') format('svg');font-style: normal;font-weight: normal;
}

增加实验性前缀(Vendor Prefixes)

CSS3 等现在还没有出正式的 W3C 规范,但是很多浏览器已经实现了对应的功能,仅作为测试只用,所以在属性前面加上自己独特的实验性前缀,不同的浏览器只会识别带有自己规定前缀的样式。然而为了实现兼容性,我们不得不编写大量的冗余代码,而且要加上对应的前缀。使用 Emmet 可以快速生成带有前缀的 CSS3 属性。

ST2 已经内置了一些常见的需要实验性前缀的 CSS3 属性,例如输入 trf 会弹出提示,然后敲击回车键即可生成。而 Emmet 增强了这个功能。在任意字符前面加上一条横杠(-),即可生成该属性的带前缀代码,例如输入 -foo-css,会生成:

-webkit-foo-css: ;
-moz-foo-css: ;
-ms-foo-css: ;
-o-foo-css: ;
foo-css: ;

虽然 foo-css 并不是什么属性,但是照样可以生成。此外,你还可以详细的控制具体生成哪几个浏览器前缀或者先后顺序,使用 -wm-trf 即可生成:

-webkit-transform: ;
-moz-transform: ;
transform: ;

可想而知,w 就是 webkit 前缀的缩写,m 是 moz 前缀缩写,s 是 ms 前缀缩写,o 就是 opera 浏览器前缀的缩写。如果使用 -osmw-abc 即可生成:

-o-abc: ;
-ms-abc: ;
-moz-abc: ;
-webkit-abc: ;
abc: ;

生成渐变背景

CSS3 中新增加了一条属性 linear-gradient 使用这个属性可以直接制作出渐变的效果。但是这个属性的参数比较复杂,而且需要添加实验性前缀,无疑需要生成大量代码。而在 Emmet 中使用 lg() 指令即可快速生成,例如:使用 lg(left, #fff 50%, #000) 可以直接生成:

background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(0.5, #fff), to(#000));
background-image: -webkit-linear-gradient(left, #fff 50%, #000);
background-image: -moz-linear-gradient(left, #fff 50%, #000);
background-image: -o-linear-gradient(left, #fff 50%, #000);
background-image: linear-gradient(left, #fff 50%, #000);

直接帮你生成好了浏览器前缀。

3) Emmet 常用的高级功能

生成 Lorem Ipsum

Lorem Ipsum 表示一段随机看不懂的文字。Lorem Ipsum 的文字让人看不懂,这样才能忽略内容的含义而专注内容的排版,作为测试数据填充用的。使用 Emmet 生成 Lorem Ipsum 文本非常简单,只需要使用 lorem 这一条命令即可,敲击 Tab 键之后,就会生成如下一段文字:

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui, dolor, aperiam ab repellendus blanditiis eum exercitationem. Quae, reprehenderit repellat impedit asperiores consequatur? Illum quos magnam odit omnis recusandae natus similique.

Emmet 的 lorem 命令不仅仅只有输出这么一段文字这样一个简单的功能,它既然作为测试数据,可以加上参数指定要输出的字符数量。例如,我们如果想输出一个十个单词的 h1 标题,我们就可以使用如下命令 h1>lorem10 。但是这项功能对于使用中文的网页测试来说,好像没有多大用处,毕竟中文和英语单词的排版是不同的。

跳转编辑区域

写代码一般要用到两只手,有时候需要跳转到别的代码段等,你可以使用键盘方向键也可以使用鼠标。但是这都有缺陷,使用键盘方向键移动太慢了,而且需要按住 shift 键和方向键选中代码;使用鼠标的话,手就必须离开键盘,来回也会浪费一些时间。而 Emmet 提供了一个很实用的功能,就是整块的跳转。

为了方便理解,先看一下官方的 Demo 动画。这个功能,使用 Shift+Ctrl+. 和 Shift+Ctrl+, 分别向下或者向上移动,选取的是一整块,先从标签开始,再是整个属性,再是属性值。这样,比键盘的方向键移动高效多了。

增加图片的尺寸大小

有时候,我们需要给  标签增加对应的 width、height 属性来表示图片的大小或者给通过 background-image 属性引用的背景图片一个尺寸大小。通常的做法是看一下图片的尺寸,然后加上,而现在,你只需要将光标移动到代码段,摁下 Ctrl+U 即可让 Emmet 自动读取图片的尺寸添加上。前提条件是图片比较存在并且正确引用进来了。

如果是针对  标签的,会在后面加上 width、height 属性,如果是 background 引入的,会在下面加上 width、height 的 CSS 属性。可以看一下官方的 Demo 。但是这里有个问题,官方的 Demo 中,实现这个功能的快捷键是 Shift+Ctrl+U 但实际使用中,这个快捷键不起作用。关于 Emmet 的 Mac、Win 下的快捷键,以这个页面上的为准:https://github.com/sergeche/emmet-sublime#available-actions。

更新 CSS 的属性值

我们在写 CSS 的时候,有时候为了 hack 写很多带有前缀的属性。例如:

-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
-ms-transform: rotate(30deg);
-o-transform: rotate(30deg);
transform: rotate(30deg);

如果我们突然想修改一下旋转的角度值,那么我们就需要依次修改或者按住 Ctrl 多个选中进行修改。使用 Emmet 的话,就方便多了,我们只需要修改其中一个,然后摁下 Shift+Ctrl+R 键即可更新其他的相关属性值。

将图片资源转换成 data url 形式

data url 图片具有很多优点,在某些情况下比较实用,但是将图片转换成 data url 格式就比较麻烦了,得使用一些工具。而在 Emmet 中,将光标移动到 background: url() 中的图片位置的地方,按下 Ctrl+’ 即可将图片编码成 data url 格式。当然,前提条件是图片资源引用正确。

除此之外,Emmet 还有一些其他的诸如快速跳转、计算等等常用功能,在这里只是介绍了几个更常用的功能,有兴趣的朋友可以打开Emmet Action 的官方文档看一下 Demo,这里不再赘述。


http://chatgpt.dhexx.cn/article/rIXmdZFN.shtml

相关文章

Emmet插件的常用语法

本人使用的代码编辑工具是SublimeText&#xff0c;Emmet是一个代码的缩写插件&#xff0c;使用代码缩写快速完成代码编写&#xff0c;前提条件需要安装emmet插件&#xff0c;如下图&#xff0c;打开SublimeText 使用快捷键 Ctrl Shift P&#xff0c;显示 Package Control功能…

Intellij中Emmet插件的使用技巧

Emmet简述 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具. 在前端开发的过程中&#xff0c;一大部分的工作是写 HTML、CSS 代码。特别是手动编写 HTML 代码的时候&#xff0c;效率会特别低下&#xff0c;因为需要敲打很多尖括号&#xff0c;而且很多标签…

【精品】Intellij中Emmet插件的使用技巧

Emmet简述 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具. 在前端开发的过程中&#xff0c;一大部分的工作是写 HTML、CSS 代码。特别是手动编写 HTML 代码的时候&#xff0c;效率会特别低下&#xff0c;因为需要敲打很多尖括号&#xff0c;而且很多标…

sublime Emmet插件使用方法总结

Emmet(前身是Zen Coding)&#xff0c;它可以极大的提高代码编写的效率&#xff0c;它提供了一种非常简练的语法规则&#xff0c;然后立刻生成对应的 HTML 结构或者 CSS 代码&#xff0c;同时还有多种实用的功能帮助进行前端开发,例如快速生成html5头部就靠它了。。 一、安装em…

为Notepad++安装Emmet插件

文章目录 为Notepad安装Emmet安装32-bit64-bit 完毕 为Notepad安装Emmet 安装 Notepad下载链接(GitHub) Npp的默认安装目录 32位:C:\Program Files (x86)\Notepad 64位:C:\Program Files\Notepad 32-bit Emmet插件下载链接 64-bit 由于官方插件多年没更新,只支持32位,只能…

eclipse快速下载Emmet插件

所需链接&#xff1a; http://download.emmet.io/eclipse/updates/ eclipse 中的 help -> install new software… 注意&#xff1a;如果链接放进去&#xff0c;发现是打叉状态那么 回车一下就会发现 出现Emmet 选择&#xff0c;然后进行下一步安装 如果安装成功会在菜单…

Sublime Text3安装Emmet插件

使用场景&#xff1a; 使用Sublime Text3进行前端开发&#xff0c;使用Emmet可以有效提高编码效率&#xff01; 安装步骤&#xff1a; 1、菜单栏设置&#xff08;或者首选项&#xff09;->package control&#xff0c;或者用快捷键 shiftctrlp&#xff1b; 2、选择并点击…

Emmet插件使用方法以VS code为例

Emmet 的前身就是 Zen Coding。 专门用来写 HTML 和 CSS 代码来提高编码速度的&#xff0c;提供包括VS code、hbuilderX、Sublime Text、Notepad等插件。 输入 ! tab自动生成初始结构 div>ul>li tab .类名#id名 tab li*3 tab li3>div.box tab 或者 li3>.b…

提高新手写代码效率的Emmet插件怎么使用

平常写代码的时候通常会要写很多结构重复甚至相同的html&#xff0c;如果每一个重复的代码都去cv&#xff0c;就会非常浪费时间。 所有就有了今天要推荐给各位小白新手的插件&#xff1a;Emmet&#xff0c;现在大部分编辑器都内置了emmet插件&#xff0c;例如&#xff1a;hbuil…

Emmet:HTML/CSS代码快速编写神器

Emmet的前身是大名鼎鼎的Zen coding&#xff0c;如果你从事Web前端开发的话&#xff0c;对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码&#xff0c;大大提高了HTML/CSS代码编写的速度&#xff0c;比如下面的演示&#xff1a; Zen coding下的编码演示 去年年底&…

Emmet插件使用方法总结

Emmet插件使用方法总结 在前端开发的过程中&#xff0c;一大部分的工作是写 HTML、CSS 代码。特别是手动编写 HTML 代码的时候&#xff0c;效率会特别低下&#xff0c;因为需要敲打很多尖括号&#xff0c;而且很多标签都需要闭合标签等。于是&#xff0c;就有了 Emmet(前身是Ze…

华硕笔记本安装Ubuntu20.04

前言&#xff1a;由于工作原因&#xff0c;需要使用Ubuntu18以上的版本&#xff0c;因此我干脆一步到位&#xff0c;直接安装Ubuntu20.04&#xff0c;以下是我这两天的魔鬼经历&#xff0c;特此记录&#xff0c;给遇到同样问题的同学做个参考。 一、安装前准备 1.1). 更换笔记…

VMware安装Ubuntu 16.04(完整版图文教程)

VMware安装Ubuntu 16.04 准备工作创建虚拟机打开VMware&#xff0c;点击“创建新的虚拟机”选择自定义安装方式&#xff0c;点击下一步选择兼容性选择稍后安装操作系统&#xff0c;点击下一步选择操作系统&#xff0c;点选“Linux”&#xff0c;版本中找到“Ubuntu 64 位”&…

使用U盘安装Ubuntu20.04

背景 今天自己鼓捣小电脑&#xff0c;卖家发过来的时候已经按要求预装了Ubuntu20.04&#xff0c;我想改一下卖家起的用户名(也许是计算机名&#xff0c;分不太清)&#xff0c;结果搞的电脑输入密码却进不了桌面&#xff0c;最终决定重装系统&#xff0c;记录一下以防以后再有需…

在VMware16虚拟机安装Ubuntu详细教程

在VMware16.2.4安装Ubuntu 一、安装VMware 1.打开VMware Workstation Pro官网&#xff0c;点击即可进入。 2.进入后向下滑动找到Workstation 16 Pro for Windows &#xff0c;点击立即下载。 3.下载完成&#xff0c;文件大小615MB&#xff0c;如下图&#xff1a; 4.鼠标右击…

VMware虚拟机快速安装Ubuntu教程

准备工作 VMware Workstation15 官方下载地址&#xff1a; https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html Ubuntu18.04LTS镜像 官方下载地址&#xff1a;https://ubuntu.com/download/desktop 注&#xff1a;VMware Workstation15激活…

Windows系统安装Ubuntu虚拟机

我们在学习过程中经常会用到Linux系统&#xff0c;其中Ubuntu系统是最常用的Linux系统之一&#xff0c;通常的使用方法有3种&#xff1a; 1.抛弃Windows系统&#xff0c;转用Linux系统&#xff1a;缺点是对新手小白不友好&#xff0c;我们大部分常用还是Windows。 2.Windows和L…

Windows安装Ubuntu双系统(Win11+最新Ubuntu22.04.1LTS)

目录 前言 一、查看基础环境 二、准备安装文件 1.下载Ubuntu 22.04.01 LTS镜像ISO文件 2.下载官方推荐的U盘启动制作工具 3.制作启动U盘 4.新建硬盘分区用来安装Ubuntu系统 5.BIOS设置 三、安装Ubuntu 1.准备安装 2.接下来按照Ubuntu系统的提示选择&#xff0c;可…

个人笔记本安装ubuntu系统

个人笔记本安装Ubuntu20.04 LTS 前言一、笔记本配置二、步骤1.UltraISO制作系统盘2.安装显卡驱动2.1禁用安全启动2.1禁用nouveau驱动 3.安装CUDA 总结 前言 由于需要跑深度学习代码&#xff0c;发现linux系统更为合适&#xff0c;所以入坑linux&#xff0c;市面上流行的桌面li…

安装Ubuntu虚拟机

一、安装虚拟机 1、下载 Download VMware Workstation Player | VMware 选择Windows版本下载 2、安装 选择合适的路径&#xff0c;进行安装。 二、安装Ubuntu系统 1、下载 Download Ubuntu Desktop | Download | Ubuntu 2、安装 &#xff08;1&#xff09;创建新的虚…