首页 > 开发 > CSS > 正文

快速开发HTML和CSS的方法:Zen Coding

2024-07-11 09:03:23
字体:
来源:转载
供稿:网友

武林网(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
  • Demo (使用 Ctrl + , 展开缩写,需要JavaScript支持)
  • 中文版演示
  • 下载(完全支持)下载(部分支持,只支持“展开缩写”)

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

    展开缩写

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

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

  • E

    元素名称(div, p);

  • E#id

    使用id的元素(div#content, p#intro, span#error);

  • E.class

    使用类的元素(div.header, p.error.critial). 你也可以联合使用class和idID: div#content.column.width;

  • E>N

    子代元素(div>p, div#footer>p>span);

  • E+N

    兄弟元素(h1+p, div#header+div#content+div#footer);

  • E*N

    元素倍增(ul#nav>li*5>a);

  • E$*N

    条目编号 (ul#nav>li.item-$*5);

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

    div#header&gt;img.logo+ul#nav&gt;li*4&gt;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" />

  • 安装之后,Aptana的菜单栏中的“脚本(Script)”菜单中将会出现Zen coding相关子菜单
  • 注意事项:

  • Aptana版的官方插件是基于MAC机的,如果你用的是Windows,需要手动更改快捷键(在每个文件头部的注释片段中更改)
  • 官方的文件编码有点儿乱,修改官方js的时候,请注意编码问题,修改不当会造成相关功能的丢失;
  • DreamWeaver

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

    原作者介绍:

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

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表