Emmet的前身是大名鼎鼎的Zen coding,如果你從事Web前端開發的話,對該插件一定不會陌生。它使用仿CSS選擇器的語法來生成代碼,大大提高了HTML/CSS代碼編寫的速度,而且作為一款插件能夠大部分的代碼編輯器,文章后面列出了支持的代碼編輯器類型。請看下面演示:

Zen coding下的編碼演示
一、快速編寫HTML代碼
1. 初始化
HTML文檔需要包含一些固定的標簽,比如<html>、<head>、<body>等,現在你只需要1秒鍾就可以輸入這些標簽。比如輸入“!”或“html:5”,然后按Tab鍵:

- html:5 或!:用於HTML5文檔類型
- html:xt:用於XHTML過渡文檔類型
- html:4s:用於HTML4嚴格文檔類型
2. 輕松添加類、id、文本和屬性
連續輸入元素名稱和ID,Emmet會自動為你補全,比如輸入p#foo:

連續輸入類和id,比如p.bar#foo,會自動生成:
- <p class="bar" id="foo"></p>
下面來看看如何定義HTML元素的內容和屬性。你可以通過輸入h1{foo}和a[href=#],就可以自動生成如下代碼:
- <h1>foo</h1>
- <a href="#"></a>

3. 嵌套
現在你只需要1行代碼就可以實現標簽的嵌套。
- >:子元素符號,表示嵌套的元素
- +:同級標簽符號
- ^:可以使該符號前的標簽提升一行
效果如下圖所示:

4. 分組
你可以通過嵌套和括號來快速生成一些代碼塊,比如輸入(.foo>h1)+(.bar>h2),會自動生成如下代碼:
- <div class="foo">
- <h1></h1>
- </div>
- <div class="bar">
- <h2></h2>
- </div>

5. 隱式標簽
聲明一個帶類的標簽,只需輸入div.item,就會生成<div class="item"></div>。
在過去版本中,可以省略掉div,即輸入.item即可生成<div class="item"></div>。現在如果只輸入.item,則Emmet會根據父標簽進行判定。比如在<ul>中輸入.item,就會生成<li class="item"></li>。

下面是所有的隱式標簽名稱:
- li:用於ul和ol中
- tr:用於table、tbody、thead和tfoot中
- td:用於tr中
- option:用於select和optgroup中
6. 定義多個元素
要定義多個元素,可以使用*符號。比如,ul>li*3可以生成如下代碼:
- <ul>
- <li></li>
- <li></li>
- <li></li>
- </ul>

7. 定義多個帶屬性的元素
如果輸入 ul>li.item$*3,將會生成如下代碼:
- <ul>
- <li class="item1"></li>
- <li class="item2"></li>
- <li class="item3"></li>
- </ul>

二、CSS縮寫
1. 值
比如要定義元素的寬度,只需輸入w100,即可生成
- width: 100px;

除了px,也可以生成其他單位,比如輸入h10p+m5e,結果如下:
- height: 10%;
- margin: 5em;
單位別名列表:
- p 表示%
- e 表示 em
- x 表示 ex
2. 附加屬性
可能你之前已經了解了一些縮寫,比如 @f,可以生成:
- @font-face {
- font-family:;
- src:url();
- }
一些其他的屬性,比如background-image、border-radius、font、@font-face,text-outline、text-shadow等額外的選項,可以通過“+”符號來生成,比如輸入@f+,將生成:
- @font-face {
- font-family: 'FontName';
- src: url('FileName.eot');
- src: url('FileName.eot?#iefix') format('embedded-opentype'),
- url('FileName.woff') format('woff'),
- url('FileName.ttf') format('truetype'),
- url('FileName.svg#FontName') format('svg');
- font-style: normal;
- font-weight: normal;
- }

3. 模糊匹配
如果有些縮寫你拿不准,Emmet會根據你的輸入內容匹配最接近的語法,比如輸入ov:h、ov-h、ovh和oh,生成的代碼是相同的:
- overflow: hidden;

4. 供應商前綴
如果輸入非W3C標准的CSS屬性,Emmet會自動加上供應商前綴,比如輸入trs,則會生成:
- -webkit-transform: ;
- -moz-transform: ;
- -ms-transform: ;
- -o-transform: ;
- transform: ;

你也可以在任意屬性前加上“-”符號,也可以為該屬性加上前綴。比如輸入-super-foo:
- -webkit-super-foo: ;
- -moz-super-foo: ;
- -ms-super-foo: ;
- -o-super-foo: ;
- super-foo: ;
如果不希望加上所有前綴,可以使用縮寫來指定,比如-wm-trf表示只加上-webkit和-moz前綴:
- -webkit-transform: ;
- -moz-transform: ;
- transform: ;
前綴縮寫如下:
- w 表示 -webkit-
- m 表示 -moz-
- s 表示 -ms-
- o 表示 -o-
5. 漸變
輸入lg(left, #fff 50%, #000),會生成如下代碼:
- background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(0.5, #fff), to(#000));
- background-image: -webkit-linear-gradient(left, #fff 50%, #000);
- background-image: -moz-linear-gradient(left, #fff 50%, #000);
- background-image: -o-linear-gradient(left, #fff 50%, #000);
- background-image: linear-gradient(left, #fff 50%, #000);

三、附加功能
生成Lorem ipsum文本
Lorem ipsum指一篇常用於排版設計領域的拉丁文文章,主要目的是測試文章或文字在不同字型、版型下看起來的效果。通過Emmet,你只需輸入lorem 或 lipsum即可生成這些文字。還可以指定文字的個數,比如lorem10,將生成:

四、定制
你還可以定制Emmet插件:
- 添加新縮寫或更新現有縮寫,可修改snippets.json文件
- 更改Emmet過濾器和操作的行為,可修改preferences.json文件
- 定義如何生成HTML或XML代碼,可修改syntaxProfiles.json文件
五、針對不同編輯器的插件
Emmet支持的編輯器如下(鏈接為針對該編輯器的Emmet插件):
- Sublime Text 2
- TextMate 1.x
- Eclipse/Aptana
- Coda 1.6 and 2.x
- Espresso
- Chocolat (通過“Install Mixin”對話框添加)
- Komodo Edit/IDE (通過Tools → Add-ons菜單添加)
- Notepad++
- PSPad
- <textarea>
- CodeMirror2/3
- Brackets
語法及標簽縮寫方法如下:
后代:>
縮寫:nav>ul>li
<nav> <ul> <li></li> </ul> </nav>
兄弟:+
縮寫:div+p+bq
<div></div> <p></p> <blockquote></blockquote>
上級:^
縮寫:div+div>p>span+em^bq
<div></div> <div> <p><span></span><em></em></p> <blockquote></blockquote> </div>
縮寫:div+div>p>span+em^^bq
<div></div> <div> <p><span></span><em></em></p> </div> <blockquote></blockquote>
分組:()
縮寫:div>(header>ul>li*2>a)+footer>p
<div> <header> <ul> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </header> <footer> <p></p> </footer> </div>
縮寫:(div>dl>(dt+dd)*3)+footer>p
<div> <dl> <dt></dt> <dd></dd> <dt></dt> <dd></dd> <dt></dt> <dd></dd> </dl> </div> <footer> <p></p> </footer>
乘法:*
縮寫:ul>li*5
<ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
自增符號:$
縮寫:ul>li.item$*5
<ul> <li class="item1"></li> <li class="item2"></li> <li class="item3"></li> <li class="item4"></li> <li class="item5"></li> </ul>
縮寫:h$[title=item$]{Header $}*3
<h1 title="item1">Header 1</h1> <h2 title="item2">Header 2</h2> <h3 title="item3">Header 3</h3>
縮寫:ul>li.item$$$*5
<ul> <li class="item001"></li> <li class="item002"></li> <li class="item003"></li> <li class="item004"></li> <li class="item005"></li> </ul>
縮寫:ul>li.item$@-*5
<ul> <li class="item5"></li> <li class="item4"></li> <li class="item3"></li> <li class="item2"></li> <li class="item1"></li> </ul>
縮寫:ul>li.item$@3*5
<ul> <li class="item3"></li> <li class="item4"></li> <li class="item5"></li> <li class="item6"></li> <li class="item7"></li> </ul>
ID和類屬性
縮寫:#header
<div id="header"></div>
縮寫:.title
<div class="title"></div>
縮寫:form#search.wide
<form id="search" class="wide"></form>
縮寫:p.class1.class2.class3
<p class="class1 class2 class3"></p>
自定義屬性
縮寫:p[title="Hello world"]
<p title="Hello world"></p>
縮寫:td[rowspan=2 colspan=3 title]
<td rowspan="2" colspan="3" title=""></td>
縮寫:[a='value1' b="value2"]
<div a="value1" b="value2"></div>
文本:{}
縮寫:a{Click me}
<a href="">Click me</a>
縮寫:p>{Click }+a{here}+{ to continue}
<p>Click <a href="">here</a> to continue</p>
隱式標簽
縮寫:.class
<div class="class"></div>
縮寫:em>.class
<em><span class="class"></span></em>
縮寫:ul>.class
<ul> <li class="class"></li> </ul>
縮寫:table>.row>.col
<table> <tr class="row"> <td class="col"></td> </tr> </table>
HTML
所有未知的縮寫都會轉換成標簽,例如,foo → <foo></foo>
縮寫:!
<!doctype html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
縮寫:a
<a href=""></a>
縮寫:a:link
<a href="http://"></a>
縮寫:a:mail
<a href="mailto:"></a>
縮寫:abbr
<abbr title=""></abbr>
縮寫:acronym
<acronym title=""></acronym>
縮寫:base
<base href="" />
縮寫:basefont
<basefont />
縮寫:br
<br />
縮寫:frame
<frame />
縮寫:hr
<hr />
縮寫:bdo
<bdo dir=""></bdo>
縮寫:bdo:r
<bdo dir="rtl"></bdo>
縮寫:bdo:l
<bdo dir="ltr"></bdo>
縮寫:col
<col />
縮寫:link
<link rel="stylesheet" href="" />
縮寫:link:css
<link rel="stylesheet" href="style.css" />
縮寫:link:print
<link rel="stylesheet" href="print.css" media="print" />
縮寫:link:favicon
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
縮寫:link:touch
<link rel="apple-touch-icon" href="favicon.png" />
縮寫:link:rss
<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml" />
縮寫:link:atom
<link rel="alternate" type="application/atom+xml" title="Atom" href="atom.xml" />
縮寫:meta
<meta />
縮寫:meta:utf
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
縮寫:meta:win
<meta http-equiv="Content-Type" content="text/html;charset=windows-1251" />
縮寫:meta:vp
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
縮寫:meta:compat
<meta http-equiv="X-UA-Compatible" content="IE=7" />
縮寫:style
<style></style>
縮寫:script
<script></script>
縮寫:script:src
<script src=""></script>
縮寫:img
<img src="" alt="" />
縮寫:iframe
<iframe src="" frameborder="0"></iframe>
縮寫:embed
<embed src="" type="" />
縮寫:object
<object data="" type=""></object>
縮寫:param
<param name="" value="" />
縮寫:map
<map name=""></map>
縮寫:area
<area shape="" coords="" href="" alt="" />
縮寫:area:d
<area shape="default" href="" alt="" />
縮寫:area:c
<area shape="circle" coords="" href="" alt="" />
縮寫:area:r
<area shape="rect" coords="" href="" alt="" />
縮寫:area:p
<area shape="poly" coords="" href="" alt="" />
縮寫:form
<form action=""></form>
縮寫:form:get
<form action="" method="get"></form>
縮寫:form:post
<form action="" method="post"></form>
縮寫:label
<label for=""></label>
縮寫:input
<input type="text" />
縮寫:inp
<input type="text" name="" id="" />
縮寫:input:hidden
別名:input[type=hidden name]
<input type="hidden" name="" />
縮寫:input:h
別名:input:hidden
<input type="hidden" name="" />
縮寫:input:text, input:t
別名:inp
<input type="text" name="" id="" />
縮寫:input:search
別名:inp[type=search]
<input type="search" name="" id="" />
縮寫:input:email
別名:inp[type=email]
<input type="email" name="" id="" />
縮寫:input:url
別名:inp[type=url]
<input type="url" name="" id="" />
縮寫:input:password
別名:inp[type=password]
<input type="password" name="" id="" />
縮寫:input:p
別名:input:password
<input type="password" name="" id="" />
縮寫:input:datetime
別名:inp[type=datetime]
<input type="datetime" name="" id="" />
縮寫:input:date
別名:inp[type=date]
<input type="date" name="" id="" />
縮寫:input:datetime-local
別名:inp[type=datetime-local]
<input type="datetime-local" name="" id="" />
縮寫:input:month
別名:inp[type=month]
<input type="month" name="" id="" />
縮寫:input:week
別名:inp[type=week]
<input type="week" name="" id="" />
縮寫:input:time
別名:inp[type=time]
<input type="time" name="" id="" />
縮寫:input:number
別名:inp[type=number]
<input type="number" name="" id="" />
縮寫:input:color
別名:inp[type=color]
<input type="color" name="" id="" />
縮寫:input:checkbox
別名:inp[type=checkbox]
<input type="checkbox" name="" id="" />
縮寫:input:c
別名:input:checkbox
<input type="checkbox" name="" id="" />
縮寫:input:radio
別名:inp[type=radio]
<input type="radio" name="" id="" />
縮寫:input:r
別名:input:radio
<input type="radio" name="" id="" />
縮寫:input:range
別名:inp[type=range]
<input type="range" name="" id="" />
縮寫:input:file
別名:inp[type=file]
<input type="file" name="" id="" />
縮寫:input:f
別名:input:file
<input type="file" name="" id="" />
縮寫:input:submit
<input type="submit" value="" />
縮寫:input:s
別名:input:submit
<input type="submit" value="" />
縮寫:input:image
<input type="image" src="" alt="" />
縮寫:input:i
別名:input:image
<input type="image" src="" alt="" />
縮寫:input:button
<input type="button" value="" />
縮寫:input:b
別名:input:button
<input type="button" value="" />
縮寫:isindex
<isindex />
縮寫:input:reset
別名:input:button[type=reset]
<input type="reset" value="" />
縮寫:select
<select name="" id=""></select>
縮寫:option
<option value=""></option>
縮寫:textarea
<textarea name="" id="" cols="30" rows="10"></textarea>
縮寫:menu:context
別名:menu[type=context]>
<menu type="context"></menu>
縮寫:menu:c
別名:menu:context
<menu type="context"></menu>
縮寫:menu:toolbar
別名:menu[type=toolbar]>
<menu type="toolbar"></menu>
縮寫:menu:t
別名:menu:toolbar
<menu type="toolbar"></menu>
縮寫:video
<video src=""></video>
縮寫:audio
<audio src=""></audio>
縮寫:html:xml
<html xmlns="http://www.w3.org/1999/xhtml"></html>
縮寫:keygen
<keygen />
縮寫:command
<command />
縮寫:bq
別名:blockquote
<blockquote></blockquote>
縮寫:acr
別名:acronym
<acronym title=""></acronym>
縮寫:fig
別名:figure
<figure></figure>
縮寫:figc
別名:figcaption
<figcaption></figcaption>
縮寫:ifr
別名:iframe
<iframe src="" frameborder="0"></iframe>
縮寫:emb
別名:embed
<embed src="" type="" />
縮寫:obj
別名:object
<object data="" type=""></object>
縮寫:src
別名:source
<source></source>
縮寫:cap
別名:caption
<caption></caption>
縮寫:colg
別名:colgroup
<colgroup></colgroup>
縮寫:fst, fset
別名:fieldset
<fieldset></fieldset>
縮寫:btn
別名:button
<button></button>
縮寫:btn:b
別名:button[type=button]
<button type="button"></button>
縮寫:btn:r
別名:button[type=reset]
<button type="reset"></button>
縮寫:btn:s
別名:button[type=submit]
<button type="submit"></button>
本文內容來自互聯網整理,原文鏈接:http://www.w3cplus.com/tools/emmet-cheat-sheet.html http://www.iteye.com/news/27580 感謝原創作者分享。