Emmet 基础使用之 HTML 篇

Emmet(以前名为 Zen Coding)是一套面向文本编辑器的插件,它允许通过内容辅助高速度的编写和编辑HTML、XML、XSL和其他结构化的代码格式。

本文主要介绍 HTML 相关快捷操作。


1. 内嵌元素

1.1. > 子元素

如:div>ul>li

输出:

1
2
3
4
5
<div>
<ul>
<li></li>
</ul>
</div>

1.2. + 兄弟元素

如:div+p+bq

输出:

1
2
3
<div></div>
<p></p>
<blockquote></blockquote>

1.3. ^ 提升元素级次

如:div+div>p>span+em

输出:

1
2
3
4
<div></div>
<div>
<p><span></span><em></em></p>
</div>

追加 ^ 后,如 div+div>p>span+em^bq 输出:

1
2
3
4
5
<div></div>
<div>
<p><span></span><em></em></p>
<blockquote></blockquote>
</div>

追加多个 ^ 后,如 div+div>p>span+em^^^bq 输出:

1
2
3
4
5
<div></div>
<div>
<p><span></span><em></em></p>
</div>
<blockquote></blockquote>

1.4. *n 重复输出 n 个元素

如:ul>li*3

输出:

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

1.5. () 分组子元素,用以生成比较复杂的 Dom 结构

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

输出:

1
2
3
4
5
6
7
8
9
10
11
<div>
<header>
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
</header>
<footer>
<p></p>
</footer>
</div>

支持嵌套,如 (div>dl>(dt+dd)*2)+footer>p 输出:

1
2
3
4
5
6
7
8
9
10
11
<div>
<dl>
<dt></dt>
<dd></dd>
<dt></dt>
<dd></dd>
</dl>
</div>
<footer>
<p></p>
</footer>

2. 元素属性

2.1. 元素的后面跟 #id 或 .class,生成元素的同时将添加指定名称的属性

如:div#header+div.page+div#footer.class1.class2.class3

输出:

1
2
3
<div id="header"></div>
<div class="page"></div>
<div id="footer" class="class1 class2 class3"></div>

2.2. 使用 [attr] 添加其它属性

如:td[title="Hello world!" colspan=3]

输出:

1
<td title="Hello world!" colspan="3"></td>

提示:

  • 方括号内的属性可以添加任意多个。
  • 属性也可以不指定值,如 td[colspan title] 将输出 <td colspan="" title=""></td>,然后使用 tab 键可依次切换属性填充值。
  • 属性值用单引号或双引号都可以。
  • 如果属性值没有空格,也可以不用添加引号。

2.3. 使用 $ 给属性值编号

如:ul>li.item$*5

输出:

1
2
3
4
5
6
7
<ul>
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>
<li class="item4"></li>
<li class="item5"></li>
</ul>

使用多个 $ 可填充 0 ,如 ul>li.item$$$*5 输出

1
2
3
4
5
6
7
<ul>
<li class="item001"></li>
<li class="item002"></li>
<li class="item003"></li>
<li class="item004"></li>
<li class="item005"></li>
</ul>

使用 @- 可以改变编号的方向(递增、递减),如 ul>li.item$@-*5 输出

1
2
3
4
5
6
7
<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 输出

1
2
3
4
5
6
7
<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 输出

1
2
3
4
5
6
7
<ul>
<li class="item7"></li>
<li class="item6"></li>
<li class="item5"></li>
<li class="item4"></li>
<li class="item3"></li>
</ul>

3. 元素文本内容

3.1 使用 {text} 跟元素添加内容

如:a{Click me}

输出:

1
<a href="">Click me</a>

一个复杂点的例子,如 p>{Click }+a{here}+{ to continue} 输出

1
<p>Click <a href="">here</a> to continue</p>

提示:{text} 放在紧跟着元素分隔符的右侧,则不会影响父级的 Dom 级次。如上例中的 p>{Click } 不会影响 > 右边的所有元素作为 p 的下级。