辽宁铁岭人,现居大连。1970年生。 先后供职于 中国国际海运网、大连学堂科技、大连华仁视线网络科技有限公司、大连中科海云科技有限公司,任职技术总监。 精通PHP、JAVA、Javascript、HTML、CSS等网络编程技术及Linux操作系统。 精通面向对象编程、设计模式、重构及互联网产品设计。
分类: Html/Css
2013-04-22 16:39:55
【说明】本系列博文是依据 Emmet 官方文档翻译的,原文地址为:,部分内容已经在博主之前的博文中节选过,为方便已经收藏过之前博文的朋友,没有删除这些博文,仅将其完整的收录于本系列中。
Emmet 允许使用众所周知的 CSS 选择器飞快地编写庞大的 HTML 代码块。但这并不是开发人员唯一要做的事情:偶尔还需要编辑 HTML 和 CSS 以修正一些 bug 或者添加新特性。
Emmet 提供了非常独特的工具,可以显著提高编辑操作的体验:
展开缩写 是的,这是将 CSS 风格缩写展开成 HTML 代码的动作。 将 CSS 风格缩写 展开成 HTML/XML/CSS 代码,依赖于当前的文档语法。还执行其它的上下文,比如转换 CSS 渐变。生成的输出内容包括 tabstops 的序号,如果编辑器支持 tabstops (Eclipse、Sublime Text 2、Espresso 等) 就可以快速使用 Tab 键在它们之间跳转。
在某些编辑器中 (Eclipse、Sublime Text 2、CodeMirror) “展开缩写” 可以通过 Tab 键来完成。
标签配对 选择当前光标位置的内容,以及起始和结束的 HTML 标签。 即使在非 HTML 语法环境中也能隐式地使用许多 Emmet 动作。 已知的标签配对:自当前光标位置向外扩展搜索标签或者标签内容的边界并进行选择。同时在多次重复动作时扩展或收缩选择范围。由于技术实现的问题,并非每种编辑器都支持所有的扩展和收缩,许多编辑器仅支持扩展选区。 Emmet 的标签配对非常独特。不像其它实现,它将自当前光标位置开始搜索标签,而不是整篇文档。这意味着能够在非 HTML 文档中使用这一特性。 注意,在 HTML 之外,如果标签定义是通过拼接字符串组成的,标签配对有可能不工作,比如:var cell = 'web 程序员常常需要在 HTML 标签中包围很多文本。例如,可能从客户端获取了一个文本文档,需要用
标签包围每个段落,或者 使用
前面已经学习过如何使重复运算符生成多个相同元素,如: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* 缩写包装这个列表,将得到如下结果:
点击(此处)折叠或打开
这很讨厌,还需要手动删除列表标记。
可以让 Emmet 来完成:直接在缩写中添加 “截取“ (|t) 过滤,将自动从包围内容中删除列表标记:
默认情况下,当要包围东西时,Emmet 将原始内容放在最后一个元素中。使用 $# 占位符能够控制原始内容的输出位置。注意 $# 不是缩写语法的一部分,因此必须将其放在属性值或者文本节点中,如:ul>li[title=$#]*>{$#}+img[alt=$#]。
跳转编辑点 快速在重要的 HTML 代码点间跳转。
这个动作为 HTML 代码块工作,可以在重要的代码点间快速跳转:
选择项目 快速选择重要的 HTML 或 CSS 代码段。
与 “跳转到编辑点”,但是作用是选择重要的代码段。
在 HTML 中,可以选择标签名、完整属性和属性值。它也能选择 class 属性。
在 CSS 中,它匹配选择器、完整属性和属性值。也可以选择复合的值和函数的一部分,如 1px solid red 或 url(image.jpg)。
切换注释 切换注释。不同于一般编辑器,当什么也没选时,则匹配 HTML 标签、CSS 属性或规则。 这个动作正像其名称所展示的,切换当前选择的注释状态。几乎所有的程序员编辑器都有这个动作,但是这个有所不同。当什么都不选时,编辑器动作切换当前行的注释状态,对于 HTML 是指一个完整的标签,对于 CSS 则是一条规则或完整的属性。 分割/合并标签 分割 (
许多 web 开发人员忘记为 标签写下 width 和 height 属性生成较差的人机交互体验(poor UX)。这个动作可以自动完成这个操作:直接将光标放在 标签上,运行这个动作来添加或更新 width 和 height 属性。
在 CSS 中,将光标放在带有 url() 函数的属性值内来为当前规则添加 width 和 height 属性。
注意这个动作访问绝对 URL:它将从包含此文件的主文件夹开始搜索,然后遍历文档树。
数学表达式求值 直接计算数学表达式的值。直接计算 2*4 或 10/2 这样的表达式,并且输出其结果。可以使用 \ 运算符作为求余运算符,相当于 round(a/b)。
在数值频繁变动的 CSS 中更有用。
递增/递减数值 按给定的步长递增或递减当前光标处的数值。 正像名字所显示的那样,这个动作使用不同的步长(0.1、1或10)递增或递减当前光标处的数值: 反映 CSS 值 自动复制当前光标处的 CSS 值到所有的 vendor前缀的变量中。 对于 CSS 开发人员非常有用:拿到光标处的 CSS 属性值,将其复制到 vendor 前缀变量中,如果有需要将进行附加的转换。 将图像编码/解码 data:URL 将光标处的图像编辑或 data:URL 格式或相反操作。
HTML 和 CSS 允许使用 data:URL 结构嵌入外部资源。通常,使用在线服务或第三方资源生成器来转换为 base64 格式。
但是这些工具有一个缺点:必须在花费额外的上线时间和将不将图像转换为 base64 间做抉择。
使用 Emmet,能够在编辑器中将图像转换为 data:URL ,同时也可以将其逆向转换并备份为外部文件。