# iT 邦幫忙鐵人賽 DAY 18~21 HTML 神器 - Emmet
在我以前使用 Sublime Text 的時代,有在寫網頁的人必裝的擴充功能就是 Emmet 的前身 Zen Coding (好像不小心洩漏了自己的年齡…),它能加快並縮短開發者在編寫 HTML 及 CSS 的時間。在換到 VS Code 以後,Emmet 這個擴充功能更是直接內建了!看完這幾天的教學文章,相信你就知道它到底有多神啦!
# 如何啟用 Emmet?
首先你先用 VS Code 隨便開啟一個空的 HTML 檔案,或是直接開一個新檔案,然後在右下角選成 HTML 語言:
# 自動打出 HTML 的基礎程式碼
一開始我們可以輸入 然後再輸入 來自動完成基礎的 HTML 內容:
按下 Tab 以後,你就可以看到它已經幫你打好了基礎的 HTML5 的程式碼:
在自動補完 HTML 程式碼以後,Emmet 會自動幫你選取第一個預先設定欄位(上圖中藍色底色的已選取文字),有灰色底的地方代表你接下來可以繼續按 跳過去的預先設定欄位,然後最後一個 Tab 會幫你跳到 body 的標籤內,讓你可以快速開始打 body 的內容。
備註:
!
預設是會幫你自動完成 HTML5 的程式碼,如果這個不是你要的,還有以下的一些其他版本的 HTML 可以使用喔!一樣都是打完關鍵字以後按下 Tab 來自動補全即可。
html:xml
html:4t
html:4s
html:xt
html:xs
html:xxs
# 透過 HTML 標籤來自動補全
首先,先確認我們的游標在 body 內:
接著,輸入 h1
以後按下 鍵:
你可以注意到,如果你打的是 HTML 裡面有的標籤,它會自動幫你打上起始標籤 <h1>
與結束標籤 </h1>
,並且幫你把游標停留在中間,之後你就可以繼續補完 h1
標籤裡面的文字。
接下來我們來新增一張圖片,將游標移動到此處:
然後輸入 img
之後按下 鍵:
你可以注意到如果你輸入的是 HTML 內的特殊標籤,它會將這個標籤常用的屬性順便幫你打出來,並且游標會停在 src=""
裡面來等你輸入圖片網址。
link
標籤也類似 img
,會自動打上標籤的常用屬性,並且游標會停在 href=""
中:
# 加上 id、class 與屬性
Emmet 支援使用 css selector 來讓快速幫你打上對應的程式碼:
你可以注意到 .
變成 class=""
的內容,#
變成 id=""
裡面的內容,然後 []
內的文字會直接變成對應的額外屬性,然後在這個範例內我省略了 HTML 的標籤,當省略的時候,Emmet 自動會幫你填 div
。
# 子元素
你可以使用 CSS Selector 中的 >
符號來快速產生子元素,如 ul>li
:
如果你想要一次產生很多層也沒有問題!
# 一次產生多個
你可以使用 *
來一次產生多個,如 ul>li*5
:
實際上,像這樣打也一樣可以使用喔!
# 群組
你可以使用 ()
來對一整個元素做操作,如 table>(tr>td*3)*3
:
# 標籤的特殊變種
Emmet 有專門針對一些標籤設計特殊的變種,例如 input
有很多種不一樣的輸入框,這時候可以用 :
來指定要哪一種特殊的變種:
input:hidden
input:text
input:password
input:tel
input:number
input:checkbox
input:radio
input:file
input:submit
input:button
input:reset
- 還有很多沒有列出來的就直接去查 官方小抄 (opens new window) 吧!
# 相鄰元素
你可以使用 +
來產生相鄰的元素,如 label+input:text
:
# 自動編號
你可以使用 $
來幫你自動編號,如 img#icon-$*5
:
# 填充文字
你可以使用 lorem
來產生亂數英文單字來填充你的網頁:
你還可以使用 lorem200
,後面的數字代表你要多少個英文單字:
# 更多可用的關鍵字
如果你想要知道更多可用的 Emmet 關鍵字,建議你去看 Emmet 的官方小抄 (opens new window)。