武林網(www.49028c.com)文章簡介:Zen Coding: 一種快速編寫HTML/CSS代碼的方法.
譯自:Smashing Magazine
中文:Zen Coding: 一種快速編寫HTML/CSS代碼的方法
在本文中我們將展示一種新的使用仿CSS選擇器的語法來快速開發HTML和CSS的方法。它由Sergey Chikuyonok開發。
你在寫HTML代碼(包括所有標簽、屬性、引用、大括號等)上花費多少時間?如果你的編輯器有代碼提示功能,你編寫的時候就會容易些,但即便如此你還是要手動敲入很多代碼。
在JavaScript方面,當我們想要在一個頁面上獲取某個特定的元素時,我們就會遇到同樣的問題,我們必須寫很多代碼,這就變得難于維護和重用。JavaScript框架應運而生,它們同時引入了CSS選擇器引擎?,F在,你可以使用簡單的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>?;蛘撸绻銓慽mg,輸出就是<img src=”" src="http://www.49028c.com/uploads/allimg/130804/091FY210_0.png" />
注意事項:
好消息是,現在已經有了Zen coding for DreamWeaver插件,壞消息是,該插件支持的功能很少,只支持展開縮寫功能。而且默認的快捷鍵是無效的。只能在“命令”菜單中點擊操作。另外,沒有測試該插件是不是只支持CS4版本。不過比較好的是,作者將本插件的源碼也放出了,你可以自定義一個Dreamweaver的插件。
原作者介紹:Sergey Chikuyonok是一位俄羅斯的前端開發工程師和作者,他在優化方面有很大的熱情:從圖片、JavaScript效果到工作流程和節省時間的編碼。訪問他的主頁和他的Twitter。
新聞熱點
疑難解答