# Emmet
###### tags: `PID`
Emmet原本是為使用者達到更好的農碼體驗, 但是實在太強大了, 所以現在許多編輯(譯)器都有內建, 本次以HTML為範例, 其他的請自己找, 有些有有些沒有, 就跟哈密瓜一樣
:::info
這只會讓你打很快, 不會變強!!!而且有時候還會誤導你
:::
## 初始篇
### 使用方法
打入Emmet語法, 然後按下tab, 就會DoReMiSo~
### TAG(element)
直接打就對了
```
div
--->
<div></div>
```
### 同層元素
使用加號相連
```
h1+p
--->
<h1></h1>
<p></p>
```
### 元素重複
使用乘號複製
```
div*3
--->
<div></div>
<div></div>
<div></div>
```
### 父子層
用>代表子層
```
ul>li*3
--->
<ul>
<li></li>
<li></li>
<li></li>
</ul>
```
### 往上一層
用^代表往上一層
```
div>h1^div
--->
<div>
<h1></h1>
</div>
<div></div>
```
### 包裹
emmet也可以用()做範圍區隔
```
(div>p)+(ul>li)
--->
<div>
<p></p>
</div>
<ul>
<li></li>
</ul>
```
## 屬性篇
屬性是可以越接越長
### id
跟選擇器一樣, 打#, 如果是div可以不用打div
```
#box1>p#text1
--->
<div id='box1'>
<p id='text1'></p>
</div>
```
### class
打上. 即可, div一樣不用打, 可同時設定多個className
```
.box.light>h1.error
--->
<div class='box light'>
<h1 class='error'></h1>
</div>
```
### 元素屬性
與CSS一樣, 可以用[]輸入, 但是他不會管你有沒有打錯字
```
input[type='button' value='submit']
--->
<input type='button' value='submit'>
```
## 進階篇
這裡以下通通都是, 不常用!!!
### 內容
可以用{}來輸入預設內容, 相較之下這比較常用
```
p{Hello}
--->
<p>Hello</p>
```
### 多個設定
用$可以快速設定很多編號, 但是是從1開始
```
.item$*4
--->
<div class='item1'></div>
<div class='item2'></div>
<div class='item3'></div>
<div class='item4'></div>
```
### 多個設定-初始值
用@可以設定初始編號
```
.item$@5*4
--->
<div class='item5'></div>
<div class='item6'></div>
<div class='item7'></div>
<div class='item8'></div>
```
## 特別收錄-常用CSS
```
m0
--->
margin: 0;
p0
--->
padding: 0;
(m|p)(t|r|b|l) //看不懂這串的先去看正規化
--->
(margin|padding)-(top|right|bottom|left)
bz //不要問我為什麼不是bs 因為bs是別的
--->
box-sizing: border-box;
ff
--->
font-family: serif;
bg
--->
background: #000;
bgi
--->
background-image
bgp
--->
background-position
fz12 //也不要問我fs, 自己去打打看
--->
font-size: 12px;
w100+h100
--->
width: 100px;
height: 100px;
ta
--->
text-align: left;
```