iT邦幫忙

0

使用Emmet省下泡一杯咖啡的時間(HTML篇)

使用Emmet省下泡一杯咖啡的時間 (HTML篇)

效率滿點的好工具

為什麼而學?

前身是Zen coding,現已改名為Emmet,是一款文字編輯器的套件,讓開發者可以更快速的產生所需要的HTML或是CSS。支援市面上多款編輯器,Ex:Notepad++, sublime, VScode...等

『有效的使用『Emmet』能省下大把大把的時間外,也能減少打錯字或是漏字的可能性。』

大部分的編輯器,例如VS Code、Sublime Text已預設安裝!

如何用?

如同emmet官網首頁的demo,一行ul#nav>li.item$*4>a{Item $}按下tab,即可產生

<ul id="nav">
  <li class="item1"><a href="">Item 1</a></li>
  <li class="item2"><a href="">Item 2</a></li>
  <li class="item3"><a href="">Item 3</a></li>
  <li class="item4"><a href="">Item 4</a></li>
</ul>

『利用符號來表示一些常用結構的縮寫,例如>.#$+^。』

常見用法

要利用emmet產生html前,要有樹狀圖架構放心中(?)
https://ithelp.ithome.com.tw/upload/images/20201019/20128122BeLROI1UPG.jpg
摘自Structure of an HTML Page

html的架構可以用parentchildsibling來描述
https://ithelp.ithome.com.tw/upload/images/20201019/20128122U9muSqGQxJ.jpg

html結構

以下範例取自emmet

  1. 子元素(child) > 往下一層
    範例: nav>ul>li
    白話: nav的下一層有一個ul元素,這個ul元素的下一層有一個li元素,三代同堂的感覺
<nav>
    <ul>
        <li></li>
    </ul>
</nav>

  1. 兄弟元素(sibling) + 同一層
    範例: div+p+h3
    白話: div同一層有一個p元素,p的同一層有一個h3元素,三兄弟的感覺
<div></div>
<p></p>
<h3></h3>

  1. 往上爬(climb-up) ^ 上一層
    範例: div+div>p>span^h2
    白話: div的同一層有一個div元素,這個div元素下一層有一個p,p的下一層還有一個span;span的上一層也就是和p同層有一個h2
<div></div>
<div>
  <p><span></span></p>
  <h2></h2>
</div>

  1. 重複多個(multiplication) *
    範例: ul>li*5
    白話: ul列表中有5個li項目,製作選單常用
<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>

  1. 分組(grouping)()
    範例: div>(header>ul>li*2>a)+footer>p
    白話: 可以先從第一層看起,div下有一個group和footer,footer底下則是有一個p,如果沒有『()』分組,footer就比較難產生,寫到a後再一層一層使用^往上爬也可以,例如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>

  1. id(#)和class(.)的屬性
    #代表id,.代表class

範例1: #header

<div id="header"></div>

範例2: .title

<div class="title"></div>

範例3:p.class1.class2.class3多個class

<p class="class1 class2 class3"></p>

  1. 自訂屬性[attributes]

範例1:p[title="Hello world"]

<p title="Hello world"></p>

範例2:td[rowspan=2 colspan=3 title]

<td rowspan="2" colspan="3" title=""></td>

  1. 文字{text}

範例1:a{Click me}

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

範例2:p>{Click }+a{here}+{ to continue}

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

  1. 自動編號(item numbering): $

範例1: ul>li.item$*5
白話: $變數的概念,預設從1開始,依序遞增

<ul>
    <li class="item1"></li>
    <li class="item2"></li>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
</ul>

範例2: ul>li.item$$$*5
白話: $變數有三位數,預設從001開始,依序遞增

<ul>
    <li class="item001"></li>
    <li class="item002"></li>
    <li class="item003"></li>
    <li class="item004"></li>
    <li class="item005"></li>
</ul>

範例3:ul>li.item$@-*5
白話:@-順序顛倒,1~5變5~1

<ul>
    <li class="item5"></li>
    <li class="item4"></li>
    <li class="item3"></li>
    <li class="item2"></li>
    <li class="item1"></li>
</ul>

範例4:ul>li.item$@3*5
白話:@3從3開始

<ul>
    <li class="item3"></li>
    <li class="item4"></li>
    <li class="item5"></li>
    <li class="item6"></li>
    <li class="item7"></li>
</ul>

  1. 預設的標籤,縮寫中的縮寫
  • .class= <div class="class"></div> 預設為div
  • ul>.class = <ul><li class="class"></li></ul> ul下的tag預設為li

練習Emmet

找個網站或是到template相關的網頁(Ex:TEMPLATED)找一兩頁來練習

這頁為例,目的是為了增加emmet熟悉度,網頁source code中body的部分,拆一塊一塊來看

<!-- Header -->
			<header id="header">
				<a class="logo" href="index.html">Industrious</a>
				<nav>
					<a href="#menu">Menu</a>
				</nav>
			</header>

邊看這樣的結構,邊想怎麼使用emmet簡寫

header#header>a[href=index.html].logo{Industrious}+nav>a[href=#menu]{Menu}
<!-- Banner -->
			<section id="banner">
				<div class="inner">
					<h1>Industrious</h1>
					<p>A responsive business oriented template with a video background<br />
					designed by <a href="https://templated.co/">TEMPLATED</a> and released under the Creative Commons License.</p>
				</div>
				<video autoplay loop muted playsinline src="images/banner.mp4"></video>
			</section>
section#banner>(.inner>h1{Industrious}+p>{A responsive business oriented template with a video background}+br+a[href=https://templated.co/]{TEMPLATED}+{and released under the Creative Commons License.})+video[src=images/banner.mp4]

參考來源

官方速查表
Emmet簡易教學 - 快速上手包
8 Emmet Tips You Might Not Know


尚未有邦友留言

立即登入留言