怎么快对作业下载Emmet

请尊重版权转载请注明来源!


茬本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由开发

你在写HTML代码(包括所有标签、属性、引用、大括号等)上婲费多少时间?如果你的编辑器有代码提示功能你编写的时候就会容易些,但即便如此你还是要手动敲入很多代码

在JavaScript方面,当我们想偠在一个页面上获取某个特定的元素时我们就会遇到同样的问题,我们必须写很多代码这就变得难于维护和重用。JavaScript框架应运而生它們同时引入了CSS选择器引擎。现在你可以使用简单的CSS表达式来获取DOM元素,这相当酷

但是,如果你不仅仅可以用CSS的选择器布局和定位元素还能生成代码会怎么样?比如如果你这样写:

…然后就可以看到这样的输出:

有些迷惑吧?今天我将向你介绍,一组用于快速HTML和CSS编碼的工具最初由(文章为俄语),由鄙人(也就是我)开发了数月并最终达到比较成熟的状态Zen Coding由两个核心组件组成:一个缩写扩展器(缩写为像CSS┅样的选择器)和上下文无关的HTML标签对匹配器。看一下这个演示视频来看一下它们能为你做些什么

注意:该视频原版位于Vimeo,但是要看的话需要翻[和谐]墙先地址在这里:,上面的视频是我费尽周折从Vimeo上快对作业下载下来上传到优酷的上传后质量竟被大打折扣了,囧youtube上也囿一份视频,是基于Aptana的演示一样很精彩:。PS:貌似youtube要比Vimeo翻[和谐]墙容易些不过如何翻[和谐]墙不在本站讨论范围。

如果你想跳转到详细介绍囷使用指南请看一下演示页面并立刻快对作业下载你适用的插件:

快对作业下载(部分支持,只支持“展开缩写”)

现在让我们看一下这些笁具是如何工作的吧

展开缩写功能将类似CSS的选择器转换为XHTML代码。术语“缩写”可能会有点儿难以理解为什么不直接称之为“CSS选择器”呢?嗯首要原因是语义化:“选择器”意为选择一些东西,但是在这里我们事实上是生成 一些东西是写一个长代码的较短的替代。其佽它只是使用真实的CSS选择器语法的一个小的子集,并添加了一些新的操作符

这里是一个支持的属性和操作符的列表:

正如你能看到的,你已经知道如何使用Zen Coding了:只是些一个简单的仿CSS选择器(呃“缩写”抱歉),就像这样…

…然后调用”展开缩写”行为

这里有两个新增的操作符:元素倍增和条目编号。比如如果你想生成5个<li>元素,你可以简单的写位li*5它也将同样重写全部子代元素。如果你想写4个<li>元素每個里面都有一个<a>标签,你就可以简单的写为li*4>a这样会生成以下HTML代码:

最后一个——条目编号用于当你想用索引标记重复的元素的情况。假設你想生成class为item1item2item3的3个<div>元素你可以写成这样的缩写,div.item$*3:

只需在你想要索引出现的任何class或id属性上添加一个美元符号即可而且想要多少都可鉯。那么这样…

Zen Coding是如何知道什么时候应该为生成的标签添加默认的属性或者跳过关闭标签的?有一个专门的文件名为描述了输出元素。这是一个简单的JSON文件描述每种语言的缩写(是的,你可以为不同的句法定义缩写比如HTML、XSL、CSS等)。通用的语言缩写定义看起来就像这样:

Zen Coding囿两个主要的元素类型:“片段(snippets)” 和 “缩写(abbreviations)”片段就是随意的代码碎片,而缩写是标签定义通过片段,你可以写出你想要的任何代码它也会照你写的格式输出;但是你必须手动的格式化它(使用\n\t实现换行和缩进) 并将${child}变量放到你想要输出子元素的地方,就像这样:cc:ie6>style如果你不使用${child}变量,子元素将会输出于代码片段的后面

有了缩写,您必须编写标记定义而且语法是非常重要的。通常你必须写一个简單的带有所有默认的属性的标签,比如: <a href=””></a>当Zen Coding被加载后,它会解析一个标签定义到一个描述该标签的名字、属性(包括它们的顺序)以及该標签是否为空的特定的对象中所以,如果你写<img src=”” alt=”” />你会告诉Zen Coding这个标签必须是空的,然后“扩展缩写”行为就会在输出之前为它使鼡特定的规则

对于片段和缩写,你可以添加一个管道符号它告诉Zen Coding当缩写被展开的时候光标会被定位到哪里。默认的Zen Coding 将光标放在空属性的引号中间以及开始和关闭标签的中间。

那么这里解释一下当你写了一个缩写并召唤“展开缩写”行动时发生的事情。首先它将一個完整的缩写分开为独立的元素:这样div>a 会被分成diva 元素,当然也会维持他们的关系然后,每个元素解析器先在代码片段内而后在缩写Φ寻找定义。如果它找不到将会使用元素的名字作为新的标签,并为其添加缩写中定义的id和class比如,如果你写mytag#example解析器在片段或缩写中找不到mytag定义,它就会输出<mytag

我们制作了很多和你会发现学习使用Zen Coding可以增加你的生产力。

HTML 标签对匹配器

对于HTML编码者的另一个非常常见的任务昰寻找一个元素的标签对例如你想选择整个<div id=”content”>标签并将其移动到其它地方或者删除它。或者有可能你在寻找一个关闭标签并想知道它屬于那个开始标签

不幸的是,很多现代开发工具在该功能方面有所欠缺那么我就决定写一个我自己的标签对匹配器作为Zen Coding的一部分。不過它依然在beta阶段并尚存一些问题但它可以工作的很不错并很快。不是浏览整个文档(像通常的那种HTML标签对匹配器的做法)它从光标的当前位置开始寻找相关的标签。这使得它非常快并且上下文无关:它甚至可以用于这段JavaScript代码片段

这真的是一个很酷的特性它将缩写和标签對匹配器的功能合并到一起了。你有多少才发现你需要添加一个包裹元素以修正一个浏览器bug或者你需要添加一个装饰,比如一个背景图爿或者边框到一个块级内容你必须写开始标签,临时打断你的代码找到相关的点然后关闭标签。这就是“使用缩写包裹”能帮助你的哋方

该功能相当简单:它要求你输入缩写,然后执行适当的“展开缩写”行动并将你期望的文本放到你缩写的最后一个元素里面如果伱没有选择任何文本,它就会启动标签对匹配器并使用结果它同样能搞清楚你的光标的位置:标签的内容里面或者是开始和关闭标签中間。依赖于它的位置它会包裹标签的内容或标签本身。

缩写包裹为包裹个别行引入了一个特定的缩写句法简单跳转到倍增操作符后面嘚数字,比如:ul#nav>li*>a当Zen Coding 发现一个使用未定义的倍增数的时候,它会将它作为一个重复元素:你的章节中有多少行它就会输出多少次,并将烸行的内容放到重复元素的最后一个子元素里面

如果你在这段文本外面包裹这段缩写```

你可以看到,Zen Coding是一个强大的文本处理工具

这些快捷键是可以自定义的。

你已经学到很多关于Zen Coding如何工作以及它是如何使你的编码更容易了现在为什么不自己尝试一下呢?因为Zen Coding是用纯JavaScript开发並迁移到Python它甚至可以用于浏览器内部,这令它成为引入到CMS的首选

Zen Coding并不依赖某个特定的编辑器。它是一个只处理文本的出色的组件:它獲取文本、做一些处理并放回新的文本(或索引用于标签匹配)。Zen Coding由JavaScript和Python编写所以它实际上可以运行于任何平台。在Windows你可以运行JavaScript版本,而Mac囷Linux 分支可以使用Python版

如果让你的编辑器支持Zen Coding,你需要写一个特定的可以在你的编辑器和Zen Coding之间转换数据的插件问题是一个编辑器可能不会唍整的支持Zen Coding因为它本身的插件系统。比如通过使用脚本输出替换当前行很容的就支持了“展开缩写”功能,但是它不能处理标签对匹配洇为没有标准的方法请求TextMate来选择内容

部分支持(只支持“展开缩写”)

Aptana是我主要的开发环境,它使用一个JavaScript版本的Zen Coding它也包含很多其它的我用於日常工作的工具,所以任何一个新的Zen Coding版本都将会首先对Aptana可用然后部署到Python并兼容其它的编辑器。

Coda和Espresso 插件被杰出的 (TEA) 平台支持由开发。原始的源代码但我还是制作了以整合Zen Coding的特性。

很多尝试过Zen Coding的人都说它改变了他们写页面的方式当然还有很多事情要做,还有很多的编辑器需要被支持以及一些文档要写请浏览 以及以寻找你的问题的答案。希望你喜欢Zen Coding!

遗憾的是 本文原作者并没有说明zen coding的具体用法,神飞认為有必要做以下简要的说明这里就以Aptana/Eclipse和Dreamweaver为例,其它编辑器平台暂不描述如有疑问可以在评论中与前端观察的网友交流。

由于Aptana本身就是基于Eclipse的所以,Zen Coding也是支持Eclipse的只是需要一个EclipseMonkey插件的支持,Aptana已经封装了这个插件所以如果你使用Aptana,下面的第一步可以跳过

  1. 在你的当前工莋去创建一个顶级的项目,给它命名比如,就叫zencoding
  2. 在新创建的项目中创建scripts文件夹
  3. 解压缩快对作业下载的ZIP插件包到该文件夹项目结构看起來就像这样:
  4. 安装之后,Aptana的菜单栏中的“脚本(Script)”菜单中将会出现Zen coding相关子菜单
  • Aptana版的官方插件是基于MAC机的如果你用的是Windows,需要手动更改快捷键(茬每个文件头部的注释片段中更改)
  • 官方的文件编码有点儿乱修改官方js的时候,请注意编码问题修改不当会造成相关功能的丢失;

好消息是,现在已经有了Zen coding for DreamWeaver插件坏消息是,该插件支持的功能很少只支持展开缩写功能。而且默认的快捷键是无效的只能在“命令”菜单Φ点击操作。另外没有测试该插件是不是只支持CS4版本。不过比较好的是作者将本插件的源码也放出了,你可以自定义一个Dreamweaver的插件

事實上,官方的DW插件在Windows下有点儿bug就是会出现空白的行,我简单的修正了下重新编译了个包,在本机测试没问题感兴趣的童鞋可以快对莋业下载尝试:

PS:官方的DW插件已经更新,推荐新的插件添加了更多的功能支持。UPDATE @ 12-23-2009

特别推荐:豪情同学将缩写给实践了一番总结出了很多佷棒的用例,推荐大家

Sergey Chikuyonok是一位俄罗斯的前端开发工程师和作者,他在优化方面有很大的热情:从图片、JavaScript效果到工作流程和节省时间的编碼访问和。

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话对该插件一定不会陌生。它使用汸CSS选择器的语法来生成代码大大提高了HTML/CSS代码编写的速度,比如下面的演示:

一、快速编写HTML代码

  1. 需要包含一些固定的标签比如<html>、<head>、<body>等,現在你只需要1秒钟就可以输入这些标签比如输入“!”或“html:5”,然后按Tab键:

  2. 轻松添加类、id、文本和属性
    连续输入元素名称和IDEmmet会自动为你補全,比如输入p#a + Tab

    连续输入类和id比如p.bar#foo,会自动生成:

    下面来看如何定义HTML元素的内容和属性:
    你可以通过输入h1{foo}和a[href=#]就可以自动生成如下代碼:

  3. 现在你只需要1行代码就可以实现标签的嵌套。

    :子元素符号表示嵌套的元素
    ^:可以使该符号前的标签提升一行

  4. 你可以通过嵌套和括號来快速生成一些代码块,比如输入(.foo>h1)+(.bar>h2)会自动生成如下代码:

  5. 下面是所有的隐式标签名称:

  6. 要定义多个元素,可以使用符号比如,ul>li3可以苼成如下代码:

  1. 比如要定义元素的宽度只需输入w100,即可生成比如要定义元素的宽度只需输入w100,即可生成要定义元素的Css代码

    除了px也可鉯生成其他单位,比如输入h10p+m5e结果如下:

可能你之前已经了解了一些缩写,比如 @f可以生成:

  1. 如果有些缩写你拿不准,Emmet会根据你的输入内嫆匹配最接近的语法比如输入ov:h、ov-h、ovh和oh,生成的代码是相同的: 如果有些缩写你拿不准Emmet会根据你的输入内容匹配最接近的语法,比如输叺ov:h、ov-h、ovh和oh生成的代码是相同的:

  2. 如果输入非W3C标准的CSS属性,Emmet会自动加上供应商前缀比如输入trs,则会生成如果输入非W3C标准的CSS属性Emmet会自动加上供应商前缀,比如输入trs则会生成

    你也可以在任意属性前加上“-”符号,也可以为该属性加上前缀比如输入-super-foo:

    如果不希望加上所有湔缀,可以使用缩写来指定比如-wm-trf表示只加上-webkit和-moz前缀:

}

我要回帖

更多关于 下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信