Emmet语法总结
Posted syzdev
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Emmet语法总结相关的知识,希望对你有一定的参考价值。
1 Emmet
简介
Emmet
是一个Web开发工具,用于加快html和CSS代码的编写速度。使用Emmet
能够通过简短的表达式生成HTML或CSS代码片段。另外,截至2022年,主流的编辑器工具如Visual Studio Code、WebStorm都已经集成了Emmet
工具,无需手动安装即可使用。
如在Visual Studio Code中新建index.html
,输入div
,可以看到Emmet Abbreviation
说明这是一个Emmet
语法规则,如下图所示:
此时点击Emmet Abbreviation
或按Tab
键即可生成代码片段,在这个例子中生成的是div
标签:
在Emmet
中包括HTML语法和CSS语法两个部分,分别包含若干语法用于简化代码输入。
2 HTML语法
2.1 初始化HTML结构
输入!
再按Tab
键即可生成HTML初始化结构:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
2.2 生成带有id
的标签
使用操作符#
即可生成一个带有id
的标签,如输入div#main
可生成如下代码片段:
<div id="main"></div>
当标签为div
时,还可以省略div
标签,直接输入#main
即可生成与上面相同的代码片段:
2.3 生成带有class
的标签
使用操作符.
即可生成一个带有class
的标签,如输入div.main
可生成如下代码片段:
<div class="main"></div>
类似的,当标签为div
时,还可以省略div
标签,直接输入.main
即可生成与上面相同的代码片段:
2.4 生成带有属性的标签
使用操作符[]
即可生成一个带有属性的标签,如输入div[name=syz age=18]
可生成如下代码片段:
<div name="syz" age="18"></div>
2.5 标签属性值数字编号
使用操作符$
即可生成带有数字编号的标签属性值,如输入ul>li.className$*3
可生成如下代码片段:
<ul>
<li class="className1"></li>
<li class="className2"></li>
<li class="className3"></li>
</ul>
2.6 生成标签内文本
使用操作符即可生成带文本内容的标签,如输入
div文本内容
可生成如下代码片段:
<div>文本内容</div>
2.7 子节点生成
使用操作符>
即可生成一对父子节点,如输入div>span
可生成如下代码片段:
<div><span></span></div>
2.8 兄弟节点生成
使用操作符+
即可生成一对兄弟节点,如输入div+div
可生成如下代码片段:
<div></div>
<div></div>
2.9 父级兄弟节点生成
使用操作符^
即可生成一个父级兄弟节点,父级兄弟节点生成通常与子节点生成同时使用,如输入div>span^p
可生成如下代码片段:
<div><span></span></div>
<p></p>
顾名思义,当使用子节点生成使当前上下文处于子节点时,可以通过^
操作符使上下文回到父节点处:
还可以使用多个^
操作符使语境处于多个父级中,如div>ul>li^^p
可生成如下代码片段:
<div>
<ul>
<li></li>
</ul>
</div>
<p></p>
在这个例子中使用两个^
操作符来生成div
的兄弟节点p
。
2.10 重复节点生成
使用操作符*
即可生成重复的节点,如输入div*3
可生成如下代码片段:
<div></div>
<div></div>
<div></div>
2.11 节点分组
使用操作符()
即可将部分节点分组形成一个整体,将()
内的节点与外面节点隔离,避免产生嵌套关系,如输入div>(ul>li)+p
可生成如下代码片段:
<div>
<ul>
<li></li>
</ul>
<p></p>
</div>
在这个例子中(ul>li)
可看作一个整体,这里用字母A
表示,则表达式转换为div>A+p
,这时p
标签就为A
的兄弟节点。若不加()
,输入div>ul>li+p
则生成的代码片段如下:
<div>
<ul>
<li></li>
<p></p>
</ul>
</div>
可以发现p
标签变成了li
标签的兄弟节点。
3 CSS语法
本文对Emmet
中的CSS语法部分仅做简单介绍并列举一些常用的方法,若读者想详细了解请参阅官方文档CSS Abbreviations。
3.1 width
和height
输入w100
即可生成width: 100px
,输入w100%
即可生成width: 100%
;height
同理。
3.2 margin
和padding
输入m10
即可生成margin: 10px
,当要分别设置四个方向的属性值时,输入m10px20px30px40px
即可生成代码片段margin: 10px 20px 30px 40px
;padding
同理。
3.3 属性值生成
- 输入
fwb
即可生成代码片段font-weight: bold
; - 输入
lh20px
即可生成代码片段line-height: 20px
; - 输入
df
即可生成代码片段display: flex
; - 输入
jcc
即可生成代码片段justify-content: center
; - 输入
aic
即可生成代码片段align-items: center
; - 输入
poa
即可生成代码片段position: absolute
; - 输入
tac
即可生成代码片段text-align: center
; - …
根据上面的例子,其实可以发现规律,Emmet
中用首字母+具体值的形式生成CSS代码片段,这里就不一一列举了,读者可以在编辑器中自行尝试一下。
Emmet语法
Emmet语法
快速生成HTML
结构语法
- 生成标签直接输入标签名按
tab键
即可,比如div 然后 tab 键
,就可以生成<div></div>
- 如果想要生成多个
相同标签
加上*
就可以了,比如div*3
就可以快速生成 3 个 div - 如果有
父子级
关系的标签,可以用>
,比如ul > li
就可以了 - 如果有
兄弟关系
的标签,用+
就可以了比如div+p
- 如果生成
带有类名
或者id名字
的,直接写.demo
或者#two tab键
就可以了 - 如果生成的
div类名
是有顺序的
,可以用自增符号$
- 如果想要在
生成的标签内部写内容
可以用{}
表示
快速生成CSS
样式语法
CSS基本采取简写形式即可.
- 比如
w200
按tab键
可以生成width: 200px;
- 比如
lh26
按tab键
可以生成line-height: 26px;
快速格式化代码
Vscode 快速格式化代码: shift+alt+f
也可以设置当我们保存页面的时候自动格式化代码:
-
文件------>【首选项】------>【设置】
-
搜索emmet.include;
-
在
settings.json
下的【用户】中添加以下语句:
"editor.formatOnType": true,
"editor.formatOnSave": true
只需要设置一次即可,以后都可以自动保存格式化代码。
以上是关于Emmet语法总结的主要内容,如果未能解决你的问题,请参考以下文章