20个GIF带你掌握Emmet语法,并大幅提到编写代码的速度

467 阅读4分钟

假如让你在编辑器中敲出下面的代码,那么你需要敲多久的代码呢?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="container">
        Lorem ipsum, dolor sit amet consectetur adipisicing elit. Harum mollitia illo deserunt possimus dicta, quod aliquam, fugiat eligendi debitis sed magni, perferendis recusandae tenetur officia ipsa ipsam tempore fugit error!
    </div>
    <ul>
        <li>list 1</li>
        <li>list 2</li>
        <li>list 3</li>
        <li>list 4</li>
        <li>list 5</li>
        <li>list 6</li>
        <li>list 7</li>
        <li>list 8</li>
    </ul>
</body>

</html>

如果使用传统的方法一行一行的敲,即使有编辑器的智能补全功能也会非常的慢。

而使用Emmet语法就可以非常快速的完成输入:

如上图所示,Emmet是一个编辑器插件,提供了代码智能补全的语法规则。它能够帮我们快速的编写HTML和CSS代码。

我们知道HTML中有大量模式化的重复字符,Emmet的存在就是帮我们摆脱这些冗余的代码。

安装

目前VSCode、WebStorm等主流的代码编辑器已经预装了Emmet插件,大家不需要下载,可以直接使用。

下面的GIF都是在VSCode中录制的,但是规则是通用的,你在其他编辑器中也可以使用类似的技巧。

生成HTML模板

我们知道每个HTML5文件都应该有固定的框架,大致如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>

使用Emmet语法后你不需要手动的敲击这些字符,你只需要在一个HTML文件中输入一个! 符号就行了,VSCode会提醒你要不要使用Emmet规则自动补全:

GIF:

输入一个标签

在HTML中,一个标签是长这个样子的:

<div></div>

<span></span>

<img/>

这种标签中,除了div、span是核心内容,其他的符号都是模式化的补充字符。

而使用Emmet,我们就不需要输入这些冗余字符了:

同时,像header、blockquote这样比较名字比较长的标签还可以使用缩写:

输入带有class的标签

我们知道一个HTML标签一般都会带有CSS样式。在使用Emmet的时候,我们只需要在标签名后面加上Class名称,就可以自动补充了:

规则:

div.container  ==> <div class="container"></div>span.red  ==> <span class="red"></span>div.row.blue ==> <div class="row blue"></div>

GIF:

输入带有ID的标签

规则:

div#id1 ==> <div id="id1"></div>
span#bytefish.blue ==> <span id="bytefish" class="blue"></span>

GIF:

输入带有内容的标签

如果我们想在标签中添加具体的内容,我们可以使用{} 语法:

GIF:

同时输入多个标签

Emmet支持相加运算,如果我们使用+就可以同时的输入多个标签:

GIF:

输入嵌套标签

在CSS中,子代组合器的符号是>,在Emmet中也可以使用这种语法来输入嵌套标签。

规则:

nav>ul>li =>

<nav>  <ul>    <li></li>  </ul></nav>

GIF:

在输入嵌套标签的时候,我们也可以连同class、内容一起输入:

GIF:

上级

假设我们想要使用Emmet一次性的输入这样的文本,那么我们应该怎么做呢?

<div></div><div>  <p><span><em></em></span></p>  <blockquote></blockquote></div>

上面的文本最大的痛点在于:p标签既有子标签又有并列标签。只使用我们之前提到的> 和 + 无法一次性的输入所有的文本。

错误的示例:

上面这种写法的问题在于当我们输入 +bq 的时候,其实是创建了一个和em同一个层级的标签。如果我们想要创建一个span同层级的标签,我们可以使用^符号。这个符号就是让标签提升到上级。

规则:

效果:

GIF:

如果我们想要bq和p并列,那么我们只需要使用两次^,这表示将这个标签提升两级。

规则:

GIF:

乘法

很多标签需要重复出现多次,比如说li。为了方便批量的输入这些标签,Emmet允许我们使用乘法。

规则:

*表示乘法,*3表示前面的标签出现三次。

效果:

GIF:

GIF2:

自增符号 $

在使用乘法批量的生成Tag的时候,我们可能需要使用到数字。比如说这样的:

<ul>  <li>item 1</li>  <li>item 2</li>  <li>item 3</li>  <li>item 4</li>  <li>item 5</li>  <li>item 6</li></ul>

那么我们该如何输入上面的内容呢?

在Emmet中提供了一个特殊的符号:$. 这个符号代表着一个特殊的变量,它默认的初始值是1,每次出现后自动加1。

规则:

效果:

GIF:

GIF2:

如果你希望使用三位数的数字,那么只需要使用三次$符号:

规则:

结果:

GIF:

如果你希望将$的初始值设置为其他数字,那么可以使用@符号。

规则:

这里的@3就是将前面的$变量的初始值设置为3。

结果:

GIF:

Lorem

我们在编写代码的时候,经常需要填写一些无意义的字符串,用来测试我们的HTML页面的展示效果。你之前是否都是用键盘随机输入字符呢?

Emmet为我们提供了一个特殊的命令,可以快速的生成一堆无具体意义的字符串。

规则:

Result:

GIF:

GIF2:

小结

这就是Emmet的基本用法,希望对你有帮助。如果你认为这些GIF帮助到你了,请告诉我,我会继续创作同类型的文章。

最后:现在你能够快速的输入本文开头的那个HTML文本了吗?