HTML/CSS 速寫神器 Emmet語法

Neo.Yan發表於2017-02-12

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 中

相關文章