Emmet 是高效、快速編寫 HTML 和 CSS 程式碼的一種外掛,如果還不瞭解,請戳Emmet — the essential toolkit for web-developers,再根據你使用的編輯器(Sublime 或 vim 等)下載對應的 Emmet 外掛,Visual Code直接支援Emmet語法。
1.準備工作
編輯器使用Visual Code,下載地址訪問https://code.visualstudio.com/,新建一個HTML檔案,並儲存。
2.生成 HTML 文件初始結構
HTML 文件的初始結構,就是包括 doctype、html、head、body 以及 meta 等內容。你只需要輸入一個 “!” 就可以生成一個 HTML5 的標準文件初始結構,你沒有看錯,輸入一個感嘆號(當然是英文符號),然後按 “Tab” 鍵便會生成程式碼,就會發現生成了下面的結構:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
這就是一個 HTML5 的標準結構,也是預設的 HTML 結構。如果你想生成 HTML4 的過渡型結構,那麼輸入指令 html:xt,然後按 “Tab” 鍵, 即可生成如下結構:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Document</title> </head> <body> </body> </html>
Emmet 會自動把 doctype 給你補全了,怎麼樣,這樣的功能會不會讓你動心?簡單總結一下常用的 HTML 結構指令:
- html:5 或者 ! 生成 HTML5 結構
- html:xt 生成 HTML4 過渡型
- html:4s 生成 HTML4 嚴格型
3.任意一個 html 標籤輸入都會生成完整的閉合標籤
例如輸入 p 按 tab 則 生成:<p></p>
4.生成帶有 id 、class 的 HTML 標籤
例如輸入 div#header.section 則生成
<div id="header" class="section"></div>
5.生成後代:>
例如輸入p>span 則生成
<p><span></span></p>
6.生成兄弟標籤:+
例如輸入p+div 則生成
<p></p><div></div>
7.生成上級標籤: ^
例如輸入ul>li>a^div 則生成
<ul> <li><a href=""></a></li> <div></div> </ul>
也可以使用多個 ^,例如輸入ul>li>a^^div 則生成
<ul> <li><a href=""></a></li> </ul> <div></div>
8.重複生成多個標籤 *
例如輸入ul>li*5 則生成
<ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
9.生成分組的標籤: ()
例如輸入ul>(li>a)*5 則生成
<ul> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul>
注意和ul>li>a*5 生成是不一樣的
<ul> <li> <a href=""></a> <a href=""></a> <a href=""></a> <a href=""></a> <a href=""></a> </li> </ul>
10.生成自定義屬性:[]
例如輸入img[http://www.cnblogs.com/images/logo_small.gif][alt=www.cnblogs.com] 則生成
<img src="http://www.cnblogs.com/images/logo_small.gif" alt="www.cnblogs.com" />
11.生成遞增的屬性標籤等: $
例如輸入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>
12.生成多位遞增的呢:$$$
例如輸入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>
想生成幾位輸入幾個$
13.要生成遞減的呢:@-
例如輸入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>
14.想要從某個特定的順序開始呢:@N
例如輸入ul>li.item$@10*5 則生成
<ul> <li class="item10"></li> <li class="item11"></li> <li class="item12"></li> <li class="item13"></li> <li class="item14"></li> </ul>
15.逆序生成到某個數:@-
例如輸入ul>li.item$@-10*5 則生成
<ul> <li class="item14"></li> <li class="item13"></li> <li class="item12"></li> <li class="item11"></li> <li class="item10"></li> </ul>
16.生成文字內容:{}
例如輸入p{我是文字內容} 則生成
<p>我是文字內容</p>
17.預設元素:
宣告一個帶class的div 可以不用輸入div;.header+.footer 則生成:
<div class="header"></div> <div class="footer"></div>
Emmet 還會根據父標籤進行判定例如輸入ul>.item*3 則生成:
<ul> <li class="item"></li> <li class="item"></li> <li class="item"></li> </ul>
下面是所有的隱式標籤名稱:
- li:用於 ul 和 ol 中
- tr:用於 table、tbody、thead 和 tfoot 中
- td:用於 tr 中
- option:用於 select 和 optgroup 中