空格是 Emmet 中止縮寫解析的標識符。css
使用元素名生成 HTML 標籤,Emmet 沒有預約義的有效元素名的集合,能夠將任何單詞當作標籤來生成和使用。html
嵌套運算符用於以縮寫的方式安排元素在生成文檔樹中的位置:將其放在內部或成爲相鄰的元素。瀏覽器
可使用>運算徐符指定嵌套元素在另外一個元素內部。編輯器
<!-- 簡寫 --> div>ul>li <!-- 生成 --> <div> <ul> <li></li> </ul> </div>
使用+運算符將相鄰其餘元素做爲同級svg
<!-- 簡寫 --> div+p+bq <!-- 生成 --> <div></div> <p></p> <blockquote></blockquote>
<!-- 使用 > 運算符將會下降全部後續全部元素在生成樹中的級別,每一級的兄弟元素也被解析成相同深度的元素: --> <!-- >運算符 --> <!-- 簡寫 --> div+div>p>span+em <!-- 生成 --> <div></div> <div> <p><span></span><em></em></p> </div> <!-- 使用 ^ 運算符,可以提高元素在生成樹中的一個級別,並同時影響其後的元素: --> <!-- ^運算符 --> <!-- 簡寫 --> 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>
<!-- 使用 * 運算符能夠定義一組元素: --> <!-- 簡寫 --> ul>li*5 <!-- 生成 --> ul>li*5 <ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
<!-- 括號用於在複雜的 Emmet 縮寫中處理一組子樹: --> <!-- 簡寫 --> 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> <!-- 若是想與瀏覽器 DOM 協同工做,可能想要對文檔片斷分組:每一個組包含一個子樹,全部的後續元素都插入到與組中第一個元素相同的級別中。 可以在組中嵌套組而且使用 * 運算符綁定它們: --> <!-- 簡寫 --> (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> <!-- 使用分組,可使用單個縮寫逐個寫出整頁的標籤,不過儘可能不要這麼作。 -->
使用 * 運算符能夠重複生成元素,若是帶 $ 就能夠爲它們編號。把 $ 放在元素名、屬性名或者屬性值中,將爲每一個元素生成正確的編號:post
<!-- 簡寫 --> 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> <!-- 使用多 $ 能夠填充前導的零: --> 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>
改變編號基數和方向url
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> ul>li.item$@-3*5 <ul> <li class="item7"></li> <li class="item6"></li> <li class="item5"></li> <li class="item4"></li> <li class="item3"></li> </ul>
能夠用花括號向元素中添加文本:spa
a{Click me} <!-- 將生成: --> <a href="">Click me</a> <!-- 注意,這個 {text} 是被當成獨立元素解析的(相似於 div, p ),但當其跟在其它元素後面時則有所不一樣。例如, a{click} 和 a>{click} 產生相同的輸出,可是 a{click}+b{here} 和 a>{click}+b{here} 的輸出就不一樣了: --> <!-- a{click}+b{here} --> <a href="">click</a><b>here</b> <!-- a>{click}+b{here} --> <a href="">click<b>here</b></a> <!-- 在第二示例中, <b> 元素放在了 <a> 元素的裏面。差異以下:當 {text} 寫在元素的後面,它不影響父元素的上下文。下面是展現這種差異的重要性的較複雜的例子: --> p>{Click }+a{here}+{ to continue} <!-- 生成: --> <p>Click <a href="">here</a> to continue</p> <!-- 在這個例子裏, 咱們用 > 運算符明確的將 Click here to continue 下移一級,放在 <p> 元素內,但對於 a 元素的內容就不須要了,由於 <a> 僅有 here 這一部份內容,它不改變父元素的上下文。 做爲比較,下面是不帶有 > 運算符的相同縮寫: --> p{Click }+a{here}+{ to continue} <!-- 生成: --> <p>Click</p> <a href="">here</a> to continue
<!-- 隱式標籤 --> <!-- 縮寫:.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 --> &l
屬性運算符用於編輯所生成的元素的屬性,在 HTML 和 XML 中能夠快速地爲生成元素添加 class 屬性。插件
在 CSS 中,可使用 elem#id 和 elem.class 註解來達到爲元素指定 id 或 class 屬性的目的。在 Emmet 中,可使用幾乎相同的語法來爲指定的元素添加這些屬性:element:code
<!-- 簡寫 --> div#header+div.page+div#footer.class1.class2.class3 <!-- 生成 --> <div id="header"></div> <div class="page"></div> <div id="footer" class="class1 class2 class3"></div>
可使用 [attr] 註解(就像在 CSS 中同樣)來爲元素添加自定義屬性:
<!-- 簡寫 --> td[title="Hello world!" colspan=3] <!-- 生成 --> <td title="Hello world!" colspan="3"></td>
/* @f,能夠生成: Css 代碼 */ @font-face { font-family: ; src: url(); } /* 一些其餘的屬性,好比background-image、border-radius、font、@font-face,text-outline、text-shadow等額外的選項,能夠經過「+ 」符號來生成,好比輸入@f+,將生成:Css代碼 */ @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,生成的代碼是相同的:Css 代碼 overflow: hidden;
4 針對不一樣編輯器的插件
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