emmet前端編碼神器

縮寫(xiě)語(yǔ)法

Emmet 使用類(lèi)似于 CSS 選擇器的語(yǔ)法描述元素在生成的文檔樹(shù)中的位置及其屬性迁沫。

元素

可以使用元素名(如 div 或者 p)來(lái)生成 HTML 標(biāo)簽担神。Emmet 沒(méi)有預(yù)定義的有效元素名的集合怕磨,可以把任何單詞當(dāng)作標(biāo)簽來(lái)生成和使用:div → <div></div>, foo → <foo></foo> 等。

嵌套運(yùn)算符

嵌套運(yùn)算符用于以縮寫(xiě)的方式安排元素在生成文檔樹(shù)中的位置:將其放在內(nèi)部或成為相鄰的元素置尔。

element >

可以使用 > 運(yùn)算符指定嵌套元素在另一個(gè)元素內(nèi)部:

div>ul>li

生成的結(jié)果為:

<div>
    <ul>
        <li></li>
    </ul>
</div>

兄弟: +

使用 + 運(yùn)算符將相鄰的其它元素處理為同級(jí):

div+p+bq

生成的結(jié)果為:

<div></div>
<p></p>
<blockquote></blockquote>

上升: ^

使用 > 運(yùn)算符將會(huì)降低所有后續(xù)所有元素在生成樹(shù)中的級(jí)別杠步,每一級(jí)的兄弟元素也被解析成相同深度的元素:

div+div>p>span+em

將生成:

<div></div>
<div>
    <p><span></span><em></em></p>
</div>

使用 ^ 運(yùn)算符,能夠提升元素在生成樹(shù)中的一個(gè)級(jí)別榜轿,并同時(shí)影響其后的元素:

div+div>p>span+em^bq

將生成:

<div></div>
<div>
    <p><span></span><em></em></p>
    <blockquote></blockquote>
</div>

可以連續(xù)使用多個(gè) ^ 運(yùn)算符幽歼,每次提高一個(gè)級(jí)別:

div+div>p>span+em^^^bq

將生成:

<div></div>
<div>
    <p><span></span><em></em></p>
</div>
<blockquote></blockquote>

重復(fù): *

使用 * 運(yùn)算符可以定義一組元素:

ul>li*5

將生成:

<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

分組: ()

括號(hào)用于在復(fù)雜的 Emmet 縮寫(xiě)中處理一組子樹(shù):

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 協(xié)同工作,可能想要對(duì)文檔片段分組:每個(gè)組包含一個(gè)子樹(shù)谬盐,所有的后續(xù)元素都插入到與組中第一個(gè)元素相同的級(jí)別中甸私。

能夠在組中嵌套組并且使用 * 運(yùn)算符綁定它們:

(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>

使用分組,可以使用單個(gè)縮寫(xiě)逐個(gè)寫(xiě)出整頁(yè)的標(biāo)簽飞傀,不過(guò)盡量不要這么做皇型。

屬性運(yùn)算符
屬性運(yùn)算符用于編輯所生成的元素的屬性,在 HTML 和 XML 中可以快速地為生成元素添加 class 屬性砸烦。

ID 和 CLASS

在 CSS 中弃鸦,可以使用 elem#id 和 elem.class 注解來(lái)達(dá)到為元素指定 id 或 class 屬性的目的。在 Emmet 中幢痘,可以使用幾乎相同的語(yǔ)法來(lái)為指定的元素添加這些屬性:element:

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 中一樣)來(lái)為元素添加自定義屬性:

td[title="Hello world!" colspan=3]

將生成:

<td title="Hello world!" colspan="3"></td>

能夠在方括號(hào)中放置許多屬性唬格,
可以不為屬性指定值: td[colspan title] 將生成 <td colspan="" title=""> ,如果你的編輯器支持颜说,可以使用 tab 來(lái)跳到每個(gè)空屬性中填寫(xiě)购岗。
屬性可以用單引號(hào)或雙引號(hào)作為定界符。
如果屬性不包含空格门粪,不需要用定界符括住它:td[title=hello colspan=3] 是正確的喊积。

編號(hào): $

使用 * 運(yùn)算符可以重復(fù)生成元素,如果帶 $ 就可以為它們編號(hào)玄妈。把 $ 放在元素名乾吻、屬性名或者屬性值中,將為每個(gè)元素生成正確的編號(hào):

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>

使用多 $ 可以填充前導(dǎo)的零:

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>

改變編號(hào)的基數(shù)和方向

使用 @ 措近,可以改變數(shù)字的走向(升序或降序)和基數(shù)(例如起始值)溶弟。

在 $ 后添加 @- 來(lái)改變數(shù)字走向:

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>

在 $ 后面添加 @N 改變編號(hào)的基數(shù):

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>

這些附加的運(yùn)算符可以同時(shí)使用:

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>

文本: {}

可以用花括號(hào)向元素中添加文本:

a{Click me}

將生成:

<a href="">Click me</a>

注意,這個(gè) {text} 是被當(dāng)成獨(dú)立元素解析的(類(lèi)似于 div, p )瞭郑,但當(dāng)其跟在其它元素后面時(shí)則有所不同辜御。例如, a{click} 和 a>{click} 產(chǎn)生相同的輸出屈张,但是 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/> 元素的里面袱巨。差別如下:當(dāng) {text} 寫(xiě)在元素的后面,它不影響父元素的上下文碳抄。下面是展示這種差別的重要性的較復(fù)雜的例子:

p>{Click }+a{here}+{ to continue}

生成:

<p>Click <a href="">here</a> to continue</p>

在這個(gè)例子里愉老, 我們用 > 運(yùn)算符明確的將 Click here to continue 下移一級(jí),放在 <p> 元素內(nèi)剖效,但對(duì)于 a 元素的內(nèi)容就不需要了嫉入,因?yàn)?<a/> 僅有 here 這一部分內(nèi)容,它不改變父元素的上下文璧尸。

作為比較咒林,下面是不帶有 > 運(yùn)算符的相同縮寫(xiě):

p{Click }+a{here}+{ to continue}

生成:

<p>Click </p>
<a href="">here</a> to continue

縮寫(xiě)格式的注意事項(xiàng)
當(dāng)熟悉了 Emmet 的縮寫(xiě)語(yǔ)法后,可能會(huì)想要使用一些格式來(lái)生成更可讀的縮寫(xiě)爷光。例如垫竞,在元素和運(yùn)算符之間使用空格間隔:

(header > ul.nav > li*5) + footer

但是這種寫(xiě)法是錯(cuò)誤的,因?yàn)榭崭袷?Emmet 停止縮寫(xiě)解析的標(biāo)識(shí)符蛀序。

請(qǐng)多用戶(hù)誤以為每個(gè)縮寫(xiě)都應(yīng)寫(xiě)在新行上欢瞪,但是他們錯(cuò)了:可以在文本的任意位置鍵入和擴(kuò)展縮寫(xiě)。

縮寫(xiě)不是模板語(yǔ)言徐裸,它們不需要”易讀“遣鼓,它們必須”可快速擴(kuò)展和移動(dòng)“。
不需要寫(xiě)復(fù)雜的縮寫(xiě)倦逐。不要認(rèn)為在 web 編程中”鍵入“是最慢的運(yùn)算譬正。想快速找出構(gòu)建單個(gè)的復(fù)雜縮寫(xiě)比構(gòu)造和鍵入一些較短較簡(jiǎn)單的縮寫(xiě)更慢宫补。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末檬姥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子粉怕,更是在濱河造成了極大的恐慌健民,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贫贝,死亡現(xiàn)場(chǎng)離奇詭異秉犹,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)稚晚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)崇堵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人客燕,你說(shuō)我怎么就攤上這事鸳劳。” “怎么了也搓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵赏廓,是天一觀的道長(zhǎng)涵紊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)幔摸,這世上最難降的妖魔是什么摸柄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮既忆,結(jié)果婚禮上驱负,老公的妹妹穿的比我還像新娘。我一直安慰自己患雇,他們只是感情好电媳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著庆亡,像睡著了一般匾乓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上又谋,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天拼缝,我揣著相機(jī)與錄音,去河邊找鬼彰亥。 笑死咧七,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的任斋。 我是一名探鬼主播继阻,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼废酷!你這毒婦竟也來(lái)了瘟檩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤澈蟆,失蹤者是張志新(化名)和其女友劉穎墨辛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體趴俘,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睹簇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寥闪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片太惠。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖疲憋,靈堂內(nèi)的尸體忽然破棺而出凿渊,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布嗽元,位于F島的核電站敛纲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏剂癌。R本人自食惡果不足惜淤翔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佩谷。 院中可真熱鬧旁壮,春花似錦、人聲如沸谐檀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桐猬。三九已至麦撵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溃肪,已是汗流浹背免胃。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惫撰,地道東北人羔沙。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像厨钻,于是被迫代替她去往敵國(guó)和親扼雏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理夯膀,服務(wù)發(fā)現(xiàn)诗充,斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法棍郎,類(lèi)相關(guān)的語(yǔ)法其障,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法涂佃,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,598評(píng)論 18 399
  • 聽(tīng)說(shuō)西洋是不很喜歡黑貓的。不失口道可確抓狭。但是在一篇小說(shuō)里寫(xiě)的是黑貓確實(shí)有點(diǎn)駭人伯病。日本的貓擅于成精,傳說(shuō)中的貓婆,那...
    素琴閱讀 730評(píng)論 0 0
  • 一流的人講思維; 二流的人講方法药磺; 三流的人講執(zhí)行力告组。 如果說(shuō),你還停留在三流的基礎(chǔ)上癌佩,那你還是回家關(guān)上門(mén)好好的想...
    釋放我的瘋狂閱讀 306評(píng)論 0 1
  • 黃昏時(shí)分围辙,我們下了高速我碟,經(jīng)過(guò)三渡橋,趕回舅舅家吃飯姚建。 陌生的村莊炊煙四起矫俺,我憑著兒時(shí)的記憶尋找回家的路。去年春節(jié)還...
    一生如燕閱讀 475評(píng)論 2 1