揭秘大厂程序员的“效率宝典”——Emmet语法

377 阅读2分钟

编程效率宝典——Emmet语法

编程效率永远是大厂程序员的追求。那么,到底有哪些方法可以帮助我们提高编程效率呢?今天就让我来揭秘一下大厂程序员的“效率宝典”——Emmet语法。

先来个例子:

<main class="container">
        <label for="file-upload" class="custom-file-upload">
            <input type="file" accept="image/*" id="file-upload">
            上传图片
        </label>
        <div id="image-container"></div>
        <p id="status"></p>
</main>

这个常见的HTML结构,你打出来需要多久呢?

其实非常迅速,只需要写好以下语句,按下enter键就可以一键生成以上结构了

main.container>(label[for='file-upload'].custom-file-upload>input[type='file' accept='image/*']#file-upload)+.image-container+p.status

是不是很迅速,仅仅使用一行代码就生成了一个复杂的HTML结构。下面让我们来讲解语法把

emmet语法介绍与示例

1. HTML初始结构

可以使用 ! + tab 生成HTML初始结构。

生成:

<!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>

2. .(类选择器)

为元素添加class属性。

div.image-container

或者(当标签为div时,div可省略)

.image-container

生成:

<div class="image-container"></div>

3. #(id选择器)

为元素添加id属性。

p#status

生成:

<p id="status"></p>

4. >(子元素)

将元素嵌套在内部。

label>input

生成:

<label for="">
	<input type="text">
</label>

5. + (兄弟元素)

将元素放在同一层级。

div#imahe-container+p#sratus

生成:

<div id="imahe-container"></div>
<p id="sratus"></p>

6. ^ (返回上层)

向上爬一个层次,并更改上下文。

label>input^div

生成:

<label for="">
	<input type="text">
</label>
<div></div>

此时div就和label在一个层级了。

当然,可以利用多个 ^ 返回多层,但最多返回到与第一个元素同级。

7. () (分组)

括号内的代码块内部嵌套与外部无关。

main>(label>input)+div+p

生成:

<main>
	<label for="">
		<input type="text">
	</label>
	<div></div>
	<p></p>
</main>

8. * (重复)

生成多个相同元素。

div*3

生成:

<div></div>
<div></div>
<div></div>

9. $ (编号)

Ⅰ、对元素进行编号。

ul>li.item$*3

与 * 相结合生成多个:

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

Ⅱ、连续多个 $ 可以生成带有前导的编号。

ul>li.item$$*3

生成:

<ul>
	<li class="item01"></li>
	<li class="item02"></li>
	<li class="item03"></li>
</ul>

10. @ (更改编号方向/起点)

Ⅰ、更改编号方向 @- 实现降序排序

ul>li.item$@-*3

生成:

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

Ⅱ、更改编号起点 @N N为编号开始数值

ul>li.item$@2*3

生成:

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

11. {} (文本)

为元素添加文本

div{这是div$}*3

生成:

<div>这是div1</div>
<div>这是div2</div>
<div>这是div3</div>

12. [] (属性)

为元素添加属性

label[for='file-upload'].custom-file-upload

生成:

<label for="file-upload" class="custom-file-upload"></label>

当然,要想熟练使用,刻意练习是必不可少的。通过刻意练习,使其成为提高编程效率的得力工具。希望今天的分享能给大家一些启发,让我们一起在不断提升编程效率的道路上茁壮成长。一起加油!