使用缩写包裹 (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=$#]。