使用缩写包裹 (Wrap with Abbreviation)

这是 Emmet 工具集中非常强大的一个功能。它接收一个缩写 (abbreviation),将其展开,并将当前选中的内容放置在生成的代码片段的最后一个元素中。如果没有选中任何内容,该操作将静默调用“匹配标签对 (Match Tag Pair)”来包裹上下文元素。

包裹独立行

Web 开发人员经常需要用 HTML 标签包裹文本。例如,你可能会收到一份来自客户的文本文档,需要用 <p> 标签包裹每一段,或者用 <ul>/<li> 结构包裹菜单项列表。

通过语法学习,你已经知道可以使用乘法运算符重复元素,例如:ul>li*5。你可以使用同一个运算符来标记重复元素,即告知 Emmet 被标记的元素应该根据所包裹的行数进行重复。

注意,在包裹行时不需要添加重复次数(例如 li*5),你必须使用不带数字* 运算符,像这样:li*

移除列表标记

当你从 Microsoft Word 等软件中复制文本时,通常会带有如下的列表符号:

* Unordered item 1
* Unordered item 2
* Unordered item 3

1. Ordered item 1
2. Ordered item 2
3. Ordered item 3

如果你尝试使用 ul>li* 缩写来包裹这些列表,将会得到类似这样的结果:

<ul>
    <li>* Unordered item 1</li>
    <li>* Unordered item 2</li>
    <li>* Unordered item 3</li>
</ul>

这不太方便,因为你必须手动删除列表标记。

你可以让 Emmet 为你处理:只需在缩写中添加“trim”过滤器(|t,即竖线加字母 t),即可自动从包裹的内容中移除列表标记。

阅读更多关于过滤器的内容

控制输出位置

默认情况下,当你包裹内容时,Emmet 会将原始内容放在最后一个元素内。你可以使用 $# 占位符来控制输出位置。注意,$# 并不属于缩写语法的一部分,因此你必须将其放入属性值或文本节点中,例如:ul>li[title=$#]*>{$#}+img[alt=$#]

评论由 Disqus 提供