べんりワザ・エディタとパソコンを速く使う

Emmetで爆速でHTMLを書く

divと打ってTabを押すだけで <div></div>。VSCodeに最初から入っている「Emmet」を使うと、HTMLのタグ打ちがラクになります。

HTMLを書いていると、<、>、閉じタグ……と、同じ記号を何度も打つのがだんだん面倒になってきます。そこで登場するのがEmmet(エメット)。短い合言葉を打ってTabを押すと、長いタグにパッと展開してくれる魔法です。しかもVSCodeには最初から入っているので、何も入れなくてすぐ使えます。

まずはこれ!HTMLの雛形を一発で

新しい.htmlファイルで、半角の!を1文字だけ打ってTab。すると、こうなります。

!  →  Tab
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
  </head>
  <body>
    
  </body>
</html>

<!DOCTYPE html>から<html>・<head>・<body>まで、HTMLの“骨組み”がまるごと出てきます。毎回手で書いていた雛形が、たった1文字で完成です。

中身の文字も一緒に

{}の中に書いた文字は、そのままタグの中身になります。

  • h1{はじめての見出し} → <h1>はじめての見出し</h1>
  • a{もっと見る} → <a href="">もっと見る</a>

つなげて、まとめて作る

Emmetの本領は、記号でタグを“組み立て”られること。

記号意味例
>子(中に入れる)ul>li
+兄弟(となりに並べる)h1+p
*くり返しli*3
()グループ(li>a)*3

たとえばul>li*3と打ってTab:

ul>li*3  →  Tab
<ul>
  <li></li>
  <li></li>
  <li></li>
</ul>

リストの箱と中身3つが、一瞬で出そろいます。

クラスやIDも記号で付けられる

CSSと同じ書き方で、classやidも一緒に指定できます。

記号意味例
.classdiv.card
#iddiv#header
div.card  →  Tab
<div class="card"></div>

.と#は組み合わせもできます。div.card#mainなら<div class="card" id="main"></div>が一発で出ます。タグ名は省略もOKで、.cardとだけ打ってもdiv.cardと同じ結果になります。

属性も[]で一緒に書ける

hrefやtypeのような属性は、[]の中に書きます。

a[href="https://example.com"]{れんしゅうサイト}  →  Tab
<a href="https://example.com">れんしゅうサイト</a>

input[type="checkbox"] → <input type="checkbox">のように、フォーム部品を作るときにも便利です。ちなみにimgは1文字ずつ属性を書かなくても、imgとだけ打てば<img src="" alt="">と、必要な属性の枠つきで展開されます。

記号を組み合わせて“ひとかたまり”を作る

ここまでの記号は、ぜんぶ混ぜて使えます。たとえばカードのパーツをまるごと1行で。

div.card>h2{タイトル}+p{せつめいの文章}  →  Tab
<div class="card">
  <h2>タイトル</h2>
  <p>せつめいの文章</p>
</div>

「箱の中に、見出しと段落」という構造を、日本語で考えた順番のまま書けるのがミソです。慣れてくると、頭の中の設計図をそのまま1行に落とせるようになります。

実はCSSでも使える

EmmetはHTML専用ではありません。CSSファイルの中でも、プロパティの省略形が使えます。

打つ展開される
m10margin: 10px;
p20padding: 20px;
dfdisplay: flex;
tactext-align: center;
ccolor: #000;

覚え方はかんたんで、プロパティ名の頭文字+値。全部暗記しなくても、それっぽく打てば候補が出てくるので、当たったらもうけものくらいの気持ちで試してみてください。

連番をつけて一気に量産する

$を使うと、繰り返しの中で連番を振れます。

li.item$*3  →  Tab
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>

同じクラス名を1つずつ手で打ち直す必要がなくなります。$$($を重ねる)にするとitem01のように0埋めの連番になります。

べんりワザ覚えて得するVSCodeショートカットEmmetと合わせて使うと効く、VSCodeのショートカットはこちら1

まとめ

  1. ! → TabでHTMLの雛形を一発で出せる
  2. h1{...}の中身、a[href="…"]の属性もまとめて書ける
  3. ul>li*3のように> *でタグを組み立てられる
  4. div.card#mainでクラス・IDも、li.item$*3で連番も一発で出せる
  5. CSSでもm10 → margin: 10px;のように省略形が使える

よくある質問

Emmetは別途インストールが必要ですか?
不要です。EmmetはVSCodeに最初から入っているので、HTMLやCSSのファイルを開けば設定なしですぐ使えます。
Tabを押しても展開されません
ファイルが.htmlとして保存されているか確認してください(画面右下にHTMLと表示されていればOK)。また、!や>などの記号が全角になっていると展開されません。日本語入力をオフにして、半角で打ち直してみてください。
EmmetはCSSでも使えますか?
使えます。CSSファイルの中でm10と打ってTabを押すとmargin: 10px;に、dfと打つとdisplay: flex;に展開されます。プロパティの頭文字を打つだけで候補が出てきます。