武林网(www.vevb.com)文章简介:Zen Coding: 一种快速编写HTML/CSS代码的方法.
译自:Smashing Magazine
中文:Zen Coding: 一种快速编写HTML/CSS代码的方法
在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由Sergey Chikuyonok开发。
你在写HTML代码(包括所有标签、属性、引用、大括号等)上花费多少时间?如果你的编辑器有代码提示功能,你编写的时候就会容易些,但即便如此你还是要手动敲入很多代码。
在JavaScript方面,当我们想要在一个页面上获取某个特定的元素时,我们就会遇到同样的问题,我们必须写很多代码,这就变得难于维护和重用。JavaScript框架应运而生,它们同时引入了CSS选择器引擎。现在,你可以使用简单的CSS表达式来获取DOM元素,这相当酷。
但是,如果你不仅仅可以用CSS的选择器布局和定位元素,还能生成代码会怎么样?比如,如果你这样写:
div#content>h1+p
…然后就可以看到这样的输出:
>
><>有些迷惑吧?今天,我将向你介绍Zen Coding,一组用于快速HTML和CSS编码的工具。最初由Vadim Makeev在2009年4月提出(文章为俄语),由鄙人(也就是我)开发了数月并最终达到比较成熟的状态。Zen Coding由两个核心组件组成:一个缩写扩展器(缩写为像CSS一样的选择器)和上下文无关的HTML标签对匹配器。看一下这个演示视频来看一下它们能为你做些什么。
注意:该视频原版位于Vimeo,但是要看的话需要翻[和谐]墙先,地址在这里:,上面的视频是我费尽周折从Vimeo上下载下来上传到优酷的,上传后质量竟被大打折扣了,囧。youtube上也有一份视频,是基于Aptana的演示,一样很精彩:?v=ug84Ypwqfzk。PS:貌似youtube要比Vimeo翻[和谐]墙容易些,不过如何翻[和谐]墙不在本站讨论范围。
如果你想跳转到详细介绍和使用指南,请看一下演示页面并立刻下载你适用的插件:
Demo现在让我们看一下这些工具是如何工作的吧。
展开缩写展开缩写功能将类似CSS的选择器转换为XHTML代码。术语“缩写”可能会有点儿难以理解。为什么不直接称之为“CSS选择器”呢?嗯,首要原因是语义化:“选择器”意为选择一些东西,但是在这里我们事实上是生成 一些东西,是写一个长代码的较短的替代。其次,它只是使用真实的CSS选择器语法的一个小的子集,并添加了一些新的操作符。
这里是一个支持的属性和操作符的列表:
元素名称(div, p);
使用id的元素(div#content, p#intro, span#error);
使用类的元素(div.header, p.error.critial). 你也可以联合使用class和idID: div#content.column.width;
子代元素(div>p, div#footer>p>span);
兄弟元素(h1+p, div#header+div#content+div#footer);
元素倍增(ul#nav>li*5>a);
条目编号 (ul#nav>li.item-$*5);
正如你能看到的,你已经知道如何使用Zen Coding了:只是些一个简单的仿CSS选择器(呃,“缩写”抱歉),就像这样…
div#header>img.logo+ul#nav>li*4>a
…然后调用”展开缩写”行为。
这里有两个新增的操作符:元素倍增和条目编号。比如,如果你想生成5个<li>元素,你可以简单的写位li*5。它也将同样重写全部子代元素。如果你想写4个<li>元素,每个里面都有一个<a>标签,你就可以简单的写为li*4>a,这样会生成以下HTML代码:
><>><>><>><>
最后一个——条目编号用于当你想用索引标记重复的元素的情况。假设你想生成class为item1、item2和item3的3个<div>元素。你可以写成这样的缩写,div.item$*3:
><><></div>
只需在你想要索引出现的任何class或id属性上添加一个美元符号即可,而且想要多少都可以。那么,这样…
div#i$-test.class$$*5
会被转换成为:
><><><><></div>
你会看到,当你写a的缩写的时候,输出是<a href=”"></a>。或者,如果你写img,输出就是<img src=”" src="http://www.vevb.com/uploads/allimg/130804/091FY210_0.png" />
注意事项:
好消息是,现在已经有了Zen coding for DreamWeaver插件,坏消息是,该插件支持的功能很少,只支持展开缩写功能。而且默认的快捷键是无效的。只能在“命令”菜单中点击操作。另外,没有测试该插件是不是只支持CS4版本。不过比较好的是,作者将本插件的源码也放出了,你可以自定义一个Dreamweaver的插件。
原作者介绍:Sergey Chikuyonok是一位俄罗斯的前端开发工程师和作者,他在优化方面有很大的热情:从图片、JavaScript效果到工作流程和节省时间的编码。访问他的主页和他的Twitter。
新闻热点
疑难解答