HTML的快速寫法:Emmet和Haml

來源:互聯網
上載者:User

標籤:http   使用   os   檔案   width   2014   

HTML代碼寫起來很費事,因為它的標籤多。

一種解決方案是採用模板, 在別人寫好的骨架內,填入自己的內容。還有一種就是我今天想要介紹的方法—-簡寫法。

常用的簡寫法,目前主要是Emmet和Haml兩種,本文都將加以介紹。

這兩種簡寫法,功能相近,各有特點。考慮到Haml基於Ruby語言,我建議Ruby/Rails項目使用Haml,其他項目使用Emmet。

一、Emmet的用法

Emmet是一個編輯器外掛程式,官方網站提供多編輯器支援。我一般使用vim,下面就以vim外掛程式舉例。

首先,按照vim外掛程式文檔進行安裝。然後,建立一個文字檔,鍵入

  1.   html:5

按一下”<Ctr+y>,”(先按ctrl鍵+y鍵,然後再按逗號鍵,不同的編輯器有不同的轉化鍵),這一行就立刻變成下面的樣子。

  1.   <!DOCTYPE html>
  2.   <html lang="en">
  3.   <head>
  4.     <meta charset="UTF-8">
  5.     <title></title>
  6.   </head>
  7.   <body>
  8.   </body>
  9.   </html>

這就是Emmet的基本用法:先寫簡寫形式,然後用”<Ctrl+y>,”將其轉成HTML代碼。

Emmet支援的簡寫規則,類似於CSS選取器(大寫的E代表一個HTML標籤):

  1.   1. E 代表HTML標籤。
  2.   2. E#id 代表id屬性。
  3.   3. E.class 代表class屬性。
  4.   4. E[attr=foo] 代表某一個特定屬性。
  5.   5. E{foo} 代表標籤包含的內容是foo。
  6.   6. E>N 代表N是E的子項目。
  7.   7. E+N 代表N是E的同級元素。
  8.   8. E^N 代表N是E的上階項目。

請看下面的例子。

  1.   p
  2.   p#main.item
  3.   a[href=http://wikipedia.org]{維基百科}
  4.   div>p
  5.   div+p
  6.   p>span^div

對應的HTML代碼為:

  1.   <p></p>
  2.   <p id="main" class="item"></p>
  3.   <a href="http://wikipedia.org">維基百科</a>
  4.   <div>
  5.     <p></p>
  6.   </div>
  7.   <div></div>
  8.   <p></p>
  9.   <p><span></span></p>
  10.   <div></div>

Emmet還提供了連寫(E*N)和自動編號(E$*N)功能。

  1.   li*3>a
  2.   div#item$.class$$*3

對應的HTML代碼為

  1.   <li><a href=""></a></li>
  2.   <li><a href=""></a></li>
  3.   <li><a href=""></a></li>
  4.   <div id="item1" class="class01"></div>
  5.   <div id="item2" class="class02"></div>
  6.   <div id="item3" class="class03"></div>

下面是另外一些簡寫的例子,讀者可以自行測試,看看它們轉化成怎樣的HTML代碼。

  1.   header+main+footer
  2.   table>(thead>tr>th*5)(tbody>tr>td*5)
  3.   nav>ul>(li>a[href=#]{Link})*5

Emmet使用按鍵”<Ctrl+y>/”,讓一個代碼塊變成HTML注釋。更多功能請參考以下連結:

  * Zeno Rocha, Goodbye, Zen Coding. Hello, Emmet!

* Sergey Chikuyonok, Zen Coding: A Speedy Way To Write HTML/CSS Code

* Joshua Johnson, 7 Awesome Emmet HTML Time-Saving Tips

* Zen-coding vim tutorial

二、Haml的用法

Haml不同於emmet,它是一個命令列工具。需要先安裝Ruby語言,再安裝Haml。

  1.   gem install haml

使用時,用命令列將haml檔案一次性轉為html檔案。

  1.   haml input.haml output.html

haml的簡化規則如下:

  1.   1. !!! 5 代表 <!DOCTYPE html>
  2.   2. %E 代表HTML標籤。
  3.   3. %E#id 代表id屬性。
  4.   4. %E.class 代表class屬性。
  5.   5. %E(attr="xxx") 代表某一個特定屬性。
  6.   6. %E XXX 代表插入標籤的內容。
  7.   7. %E %N 代表N是E的子項目。N如果寫在第二行,需要縮排。

下面是Haml的程式碼範例,代碼塊的層級關係用縮排表示。

  1.   !!! 5
  2.   %html{lang: ‘en‘}
  3.     %head
  4.       %title Haml Demo
  5.     %body
  6.       %h1 Hello World
  7.       %a(href="http://wikipedia.org" title="Wikipedia") 維基百科

對應的HTML代碼為:

  1.   <!DOCTYPE html>
  2.   <html lang=‘en‘>
  3.     <head>
  4.       <title>Haml Demo</title>
  5.     </head>
  6.     <body>
  7.       <h1>Hello World</h1>
  8.       <a href=‘http://wikipedia.org‘ title=‘Wikipedia‘>維基百科</a>
  9.     </body>
  10.   </html>

在Haml中,”/ “起首的行表示HTML注釋,”-# “起首的行表示Haml注釋。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.