立即學(xué)習(xí)“前端免費(fèi)學(xué)習(xí)筆記(深入)”;
在本文中我們將展示一種新的使用仿CSS選擇器的語法來快速開發(fā)HTML和CSS的方法。它由Sergey Chikuyonok開發(fā)。
你在寫HTML代碼(包括所有標(biāo)簽、屬性、引用、大括號等)上花費(fèi)多少時間?如果你的編輯器有代碼提示功能,你編寫的時候就會容易些,但即便如此你還是要手動敲入很多代碼。
在JavaScript方面,當(dāng)我們想要在一個頁面上獲取某個特定的元素時,我們就會遇到同樣的問題,我們必須寫很多代碼,這就變得難于維護(hù)和重用。JavaScript框架應(yīng)運(yùn)而生,它們同時引入了CSS選擇器引擎。現(xiàn)在,你可以使用簡單的CSS表達(dá)式來獲取DOM元素,這相當(dāng)酷。
但是,如果你不僅僅可以用CSS的選擇器布局和定位元素,還能生成代碼會怎么樣?比如,如果你這樣寫:
注意:該視頻原版位于Vimeo,但是要看的話需要翻[和諧]墻先,地址在這里:http://vimeo.com/7405114,上面的視頻是我費(fèi)盡周折從Vimeo上下載下來上傳到優(yōu)酷的,上傳后質(zhì)量竟被大打折扣了,囧。youtube上也有一份視頻,是基于Aptana的演示,一樣很精彩:http://www.youtube.com/watch?v=ug84Ypwqfzk。PS:貌似youtube要比Vimeo翻[和諧]墻容易些,不過如何翻[和諧]墻不在本站討論范圍。
如果你想跳轉(zhuǎn)到詳細(xì)介紹和使用指南,請看一下演示頁面并立刻下載你適用的插件:
現(xiàn)在讓我們看一下這些工具是如何工作的吧。
展開縮寫功能將類似CSS的選擇器轉(zhuǎn)換為XHTML代碼。術(shù)語“縮寫”可能會有點兒難以理解。為什么不直接稱之為“CSS選擇器”呢?嗯,首要原因是語義化:“選擇器”意為選擇一些東西,但是在這里我們事實上是生成 一些東西,是寫一個長代碼的較短的替代。其次,它只是使用真實的CSS選擇器語法的一個小的子集,并添加了一些新的操作符。
這里是一個支持的屬性和操作符的列表:
正如你能看到的,你已經(jīng)知道如何使用Zen Coding了:只是些一個簡單的仿CSS選擇器(呃,“縮寫”抱歉),就像這樣…
Zen Coding有兩個主要的元素類型:“片段(snippets)” 和 “縮寫(abbreviations)”。片段就是隨意的代碼碎片,而縮寫是標(biāo)簽定義。通過片段,你可以寫出你想要的任何代碼,它也會照你寫的格式輸出;但是你必須手動的格式化它(使用\n 和 實現(xiàn)換行和縮進(jìn)) 并將${child}變量放到你想要輸出子元素的地方,就像這樣:cc:ie6>style。如果你不使用${child}變量,子元素將會輸出于代碼片段的后面。
有了縮寫,您必須編寫標(biāo)記定義,而且語法是非常重要的。通常,你必須寫一個簡單的帶有所有默認(rèn)的屬性的標(biāo)簽,比如: http://vimeo.com/74051142和http://vimeo.com/74051143。你會發(fā)現(xiàn)學(xué)習(xí)使用Zen Coding可以增加你的生產(chǎn)力。
對于HTML編碼者的另一個非常常見的任務(wù)是尋找一個元素的標(biāo)簽對。例如你想選擇整個
不幸的是,很多現(xiàn)代開發(fā)工具在該功能方面有所欠缺。那么我就決定寫一個我自己的標(biāo)簽對匹配器作為Zen Coding的一部分。不過它依然在beta階段并尚存一些問題,但它可以工作的很不錯并很快。不是瀏覽整個文檔(像通常的那種HTML標(biāo)簽對匹配器的做法),它從光標(biāo)的當(dāng)前位置開始尋找相關(guān)的標(biāo)簽。這使得它非常快并且上下文無關(guān):它甚至可以用于這段JavaScript代碼片段:
你可以看到,Zen Coding是一個強(qiáng)大的文本處理工具。
這些快捷鍵是可以自定義的。
你已經(jīng)學(xué)到很多關(guān)于Zen Coding如何工作以及它是如何使你的編碼更容易了?,F(xiàn)在為什么不自己嘗試一下呢?因為Zen Coding是用純JavaScript開發(fā)并遷移到Python,它甚至可以用于瀏覽器內(nèi)部,這令它成為引入到CMS的首選。
Zen Coding并不依賴某個特定的編輯器。它是一個只處理文本的出色的組件:它獲取文本、做一些處理并放回新的文本(或索引,用于標(biāo)簽匹配)。Zen Coding由JavaScript和Python編寫,所以它實際上可以運(yùn)行于任何平臺。在Windows,你可以運(yùn)行JavaScript版本,而Mac和Linux 分支可以使用Python版。
如果讓你的編輯器支持Zen Coding,你需要寫一個特定的可以在你的編輯器和Zen Coding之間轉(zhuǎn)換數(shù)據(jù)的插件。問題是一個編輯器可能不會完整的支持Zen Coding因為它本身的插件系統(tǒng)。比如,http://www.youtube.com/watch?v=ug84Ypwqfzk1通過使用腳本輸出替換當(dāng)前行很容的就支持了“展開縮寫”功能,但是它不能處理標(biāo)簽對匹配因為沒有標(biāo)準(zhǔn)的方法請求TextMate來選擇內(nèi)容。
Aptana是我主要的開發(fā)環(huán)境,它使用一個JavaScript版本的Zen Coding。它也包含很多其它的我用于日常工作的工具,所以任何一個新的Zen Coding版本都將會首先對Aptana可用,然后部署到Python并兼容其它的編輯器。
Coda和Espresso 插件被杰出的Demo2 (TEA) 平臺支持,由Demo3開發(fā)。原始的源代碼Demo4,但我還是制作了Demo5以整合Zen Coding的特性。
很多嘗試過Zen Coding的人都說它改變了他們寫頁面的方式。當(dāng)然還有很多事情要做,還有很多的編輯器需要被支持以及一些文檔要寫。請瀏覽Demo6 以及Demo7以尋找你的問題的答案。希望你喜歡Zen Coding!
遺憾的是, 本文原作者并沒有說明zen coding的具體用法,神飛認(rèn)為有必要做以下簡要的說明。這里就以Aptana/Eclipse和Dreamweaver為例,其它編輯器平臺暫不描述,如有疑問可以在評論中與前端觀察的網(wǎng)友交流。
由于Aptana本身就是基于Eclipse的,所以,Zen Coding也是支持Eclipse的,只是需要一個EclipseMonkey插件的支持,Aptana已經(jīng)封裝了這個插件,所以如果你使用Aptana,下面的第一步可以跳過。
注意事項:
好消息是,現(xiàn)在已經(jīng)有了Zen coding for DreamWeaver插件,壞消息是,該插件支持的功能很少,只支持展開縮寫功能。而且默認(rèn)的快捷鍵是無效的。只能在“命令”菜單中點擊操作。另外,沒有測試該插件是不是只支持CS4版本。不過比較好的是,作者將本插件的源碼也放出了,你可以自定義一個Dreamweaver的插件。
事實上,官方的DW插件在Windows下有點兒bug,就是會出現(xiàn)空白的行,我簡單的修正了下,重新編譯了個包,在本機(jī)測試沒問題,感興趣的童鞋可以下載嘗試:Demo9
PS:官方的DW插件已經(jīng)更新,推薦中文版演示0。新的插件添加了更多的功能支持。UPDATE @ 12-23-2009
特別推薦:豪情同學(xué)將縮寫給實踐了一番,總結(jié)出了很多很棒的用例,推薦大家中文版演示1。
Sergey Chikuyonok是一位俄羅斯的前端開發(fā)工程師和作者,他在優(yōu)化方面有很大的熱情:從圖片、JavaScript效果到工作流程和節(jié)省時間的編碼。訪問中文版演示2和中文版演示3。
原文來自:http://www.qianduan.net/zen-coding-a-new-way-to-write-html-code.html
' + j + ' | ';
HTML怎么學(xué)習(xí)?HTML怎么入門?HTML在哪學(xué)?HTML怎么學(xué)才快?不用擔(dān)心,這里為大家提供了HTML速學(xué)教程(入門課程),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號