Emmet使用详解
一、Emmet的安装与介绍(HTML/CSS代码自动补全)
Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的工具,能够实现 HTML、CSS 的快速编写。
- 官网地址:http://emmet.io/
- 官方文档:http://docs.emmet.io/cheat-sheet/
- Atom的emmet介绍页面:https://atom.io/packages/emmet
1,使用Emmet的好处
- 通常大多数的文本编辑器都会允许我们存储和重用一些代码块,我们称之为“片段”。虽然片段能很好地推动我们的生产力,但大多数的实现都有这样一个缺点:我们必须先定义代码片段,并且不能再运行时进行拓展。
- 而 Emmet 把片段这个概念提高到了一个新的层次:我们可以设置 CSS 形式的能够动态被解析的表达式,然后根据输入的缩写来得到相应的内容。Emmet 很成熟的并且非常适用于编写 HTML/XML 和 CSS 代码的前端开发人员,但也可以用于编程语言。
2,安装Emmet
Emmet 为大部分流行的编辑器都提供了安装插件,本文演示如何在 Atom 中使用 Emmet 插件。
(1)点击 Atom 的“Preferences”菜单选项(Windows 下是“Settings”菜单选项)
(2)进入到 Install 页面。
(3)搜索“Emmet”包,点击 Install 按钮即可安装。
3,简单的使用样例
(1)我们在编辑器中输入如下代码:
1
|
ul>li*6 |
(2)接着按下 tab 键,之前的缩写代码就会自动扩展为完整的 html 代码片断。
二、基本语法
1,后代:>
缩写:nav>ul>li
1
2
3
4
5
|
< nav > < ul > < li ></ li > </ ul > </ nav > |
2,兄弟:+
缩写:div+p+bq
1
2
3
|
< div ></ div > < p ></ p > < blockquote ></ blockquote > |
3,上级:^
(1)缩写:div+div>p>span+em^bq
1
2
3
4
5
|
< div ></ div > < div > < p >< span ></ span >< em ></ em ></ p > < blockquote ></ blockquote > </ div > |
(2)缩写:div+div>p>span+em^^bq
1
2
3
4
5
|
< div ></ div > < div > < p >< span ></ span >< em ></ em ></ p > </ div > < blockquote ></ blockquote > |
4,分组:()
(1)缩写:div>(header>ul>li*2>a)+footer>p
1
2
3
4
5
6
7
8
9
10
11
|
< div > < header > < ul > < li >< a href = "" ></ a ></ li > < li >< a href = "" ></ a ></ li > </ ul > </ header > < footer > < p ></ p > </ footer > </ div > |
(2)缩写:(div>dl>(dt+dd)*3)+footer>p
1
2
3
4
5
6
7
8
9
10
11
12
13
|
< div > < dl > < dt ></ dt > < dd ></ dd > < dt ></ dt > < dd ></ dd > < dt ></ dt > < dd ></ dd > </ dl > </ div > < footer > < p ></ p > </ footer > |
5,乘法:*
缩写:ul>li*5
1
2
3
4
5
6
7
|
< ul > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > </ ul > |
6,自增符号:$
(1)缩写:ul>li.item$*5
1
2
3
4
5
6
7
|
< ul > < li class = "item1" ></ li > < li class = "item2" ></ li > < li class = "item3" ></ li > < li class = "item4" ></ li > < li class = "item5" ></ li > </ ul > |
(2)缩写:h$[title=item$]{Header $}*3
1
2
3
|
< h1 title = "item1" >Header 1</ h1 > < h2 title = "item2" >Header 2</ h2 > < h3 title = "item3" >Header 3</ h3 > |
(3)缩写:ul>li.item$$$*5
1
2
3
4
5
6
7
|
< ul > < li class = "item001" ></ li > < li class = "item002" ></ li > < li class = "item003" ></ li > < li class = "item004" ></ li > < li class = "item005" ></ li > </ ul > |
(4)缩写:ul>li.item$@-*5
1
2
3
4
5
6
7
|
< ul > < li class = "item5" ></ li > < li class = "item4" ></ li > < li class = "item3" ></ li > < li class = "item2" ></ li > < li class = "item1" ></ li > </ ul > |
(5)缩写:ul>li.item$@3*5
1
2
3
4
5
6
7
|
< ul > < li class = "item3" ></ li > < li class = "item4" ></ li > < li class = "item5" ></ li > < li class = "item6" ></ li > < li class = "item7" ></ li > </ ul > |
7,ID和类属性
(1)缩写:#header
1
|
< div id = "header" ></ div > |
(2)缩写:.title
1
|
< div class = "title" ></ div > |
(3)缩写:form#search.wide
1
|
< form id = "search" class = "wide" ></ form > |
(4)缩写:p.class1.class2.class3
1
|
< p class = "class1 class2 class3" ></ p > |
8,自定义属性
(1)缩写:p[title="Hello world"]
1
|
< p title = "Hello world" ></ p > |
(2)缩写:td[rowspan=2 colspan=3 title]
1
|
< td rowspan = "2" colspan = "3" title = "" ></ td > |
(3)缩写:[a='value1' b="value2"]
1
|
< div a = "value1" b = "value2" ></ div > |
9,文本:{}
(1)缩写:a{Click me}
1
|
< a href = "" >Click me</ a > |
(2)缩写:p>{Click }+a{here}+{ to continue}
1
|
< p >Click < a href = "" >here</ a > to continue</ p > |
10,隐式标签
(1)缩写:.class
1
|
< div class = "class" ></ div > |
(2)缩写:em>.class
1
|
< em >< span class = "class" ></ span ></ em > |
1
2
3
|
< ul > < li class = "class" ></ li > </ ul > |
(4)缩写:table>.row>.col
1
2
3
4
5
|
< table > < tr class = "row" > < td class = "col" ></ td > </ tr > </ table > |
三、HTML标签语法
1,所有未知的缩写都会转换成标签
缩写:hangge
1
|
< hangge ></ hangge > |
2,基本html标签
(1)缩写:!
1
2
3
4
5
6
7
8
9
10
11
12
|
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > < meta http-equiv = "X-UA-Compatible" content = "ie=edge" > < title >Document</ title > </ head > < body > </ body > </ html > |
(2)缩写:a
1
|
< a href = "" ></ a > |
(3)缩写:a:link
1
|
|
(4)缩写:a:mail
1
|
< a href = "mailto:" ></ a > |
(5)缩写:abbr
1
|
< abbr title = "" ></ abbr > |
(6)缩写:acronym
1
|
< acronym title = "" ></ acronym > |
(7)缩写:base
1
|
< base href = "" /> |
(8)缩写:basefont
1
|
< basefont /> |
(9)缩写:br
1
|
< br /> |
(10)缩写:frame
1
|
< frame /> |
(11)缩写:hr
1
|
< hr /> |
(12)缩写:bdo
1
|
< bdo dir = "" ></ bdo > |
(13)缩写:bdo:r
1
|
< bdo dir = "rtl" ></ bdo > |
(14)缩写:bdo:l
1
|
< bdo dir = "ltr" ></ bdo > |
(15)缩写:col
1
|
< col /> |
(16)缩写:link
1
|
< link rel = "stylesheet" href = "" /> |
(17)缩写:link:css
1
|
< link rel = "stylesheet" href = "style.css" /> |
(18)缩写:link:print
1
|
< link rel = "stylesheet" href = "print.css" media = "print" /> |
(19)缩写:link:favicon
1
|
< link rel = "shortcut icon" type = "image/x-icon" href = "favicon.ico" /> |
(20)缩写:link:touch
1
|
< link rel = "apple-touch-icon" href = "favicon.png" /> |
(21)缩写:link:rss
1
|
< link rel = "alternate" type = "application/rss+xml" title = "RSS" href = "rss.xml" /> |
(22)缩写:link:atom
1
|
< link rel = "alternate" type = "application/atom+xml" title = "Atom" href = "atom.xml" /> |
(23)缩写:meta
1
|
< meta /> |
(24)缩写:meta:utf
1
|
< meta http-equiv = "Content-Type" content = "text/html;charset=UTF-8" /> |
(25)缩写:meta:win
1
|
< meta http-equiv = "Content-Type" content = "text/html;charset=windows-1251" /> |
(26)缩写:meta:vp
1
|
< meta name = "viewport" content = "width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> |
(27)缩写:meta:compat
1
|
< meta http-equiv = "X-UA-Compatible" content = "IE=7" /> |
(28)缩写:style
1
|
< style ></ style > |
(29)缩写:script
1
|
< script ></ script > |
(30)缩写:script:src
1
|
< script src = "" ></ script > |
(31)缩写:img
1
|
< img src = "" alt = "" /> |
(32)缩写:iframe
1
|
< iframe src = "" frameborder = "0" ></ iframe > |
(33)缩写:embed
1
|
< embed src = "" type = "" /> |
(34)缩写:object
1
|
< object data = "" type = "" ></ object > |
(35)缩写:param
1
|
< param name = "" value = "" /> |
(36)缩写:map
1
|
< map name = "" ></ map > |
(37)缩写:area
1
|
< area shape = "" coords = "" href = "" alt = "" /> |
(38)缩写:area:d
1
|
< area shape = "default" href = "" alt = "" /> |
(39)缩写:area:c
1
|
< area shape = "circle" coords = "" href = "" alt = "" /> |
(40)缩写:area:r
1
|
< area shape = "rect" coords = "" href = "" alt = "" /> |
(41)缩写:area:p
1
|
< area shape = "poly" coords = "" href = "" alt = "" /> |
(42)缩写:form
1
|
< form action = "" ></ form > |
(43)缩写:form:get
1
|
< form action = "" method = "get" ></ form > |
(44)缩写:form:post
1
|
< form action = "" method = "post" ></ form > |
(45)缩写:label
1
|
< label for = "" ></ label > |
(46)缩写:input
1
|
< input type = "text" /> |
(47)缩写:inp
1
|
< input type = "text" name = "" id = "" /> |
(48)缩写:input:hidden
别名:input[type=hidden name]
(49)缩写:input:h
1
|
< input type = "hidden" name = "" /> |
(49)缩写:input:h
别名:input:hidden
(50)缩写:input:text, input:t
1
|
< input type = "hidden" name = "" /> |
(50)缩写:input:text, input:t
别名:inp
(50)缩写:input:search
1
|
< input type = "text" name = "" id = "" /> |
(50)缩写:input:search
别名:inp[type=search]
(51)缩写:input:email
1
|
< input type = "search" name = "" id = "" /> |
(51)缩写:input:email
别名:inp[type=email]
(52)缩写:input:url
1
|
< input type = "email" name = "" id = "" /> |
(52)缩写:input:url
别名:inp[type=url]
(53)缩写:input:password
1
|
< input type = "url" name = "" id = "" /> |
(53)缩写:input:password
别名:inp[type=password]
(54)缩写:input:p
1
|
< input type = "password" name = "" id = "" /> |
(54)缩写:input:p
别名:input:password
(55)缩写:input:datetime
1
|
< input type = "password" name = "" id = "" /> |
(55)缩写:input:datetime
别名:inp[type=datetime]
(56)缩写:input:date
1
|
< input type = "datetime" name = "" id = "" /> |
(56)缩写:input:date
别名:inp[type=date]
(57)缩写:input:datetime-local
1
|
< input type = "date" name = "" id = "" /> |
(57)缩写:input:datetime-local
别名:inp[type=datetime-local]
(58)缩写:input:month
1
|
< input type = "datetime-local" name = "" id = "" /> |
(58)缩写:input:month
别名:inp[type=month]
(59)缩写:input:week
1
|
< input type = "month" name = "" id = "" /> |
(59)缩写:input:week
别名:inp[type=week]
(60)缩写:input:time
1
|
< input type = "week" name = "" id = "" /> |
(60)缩写:input:time
别名:inp[type=time]
(61)缩写:input:number
1
|
< input type = "time" name = "" id = "" /> |
(61)缩写:input:number
别名:inp[type=number]
(62)缩写:input:color
1
|
< input type = "number" name = "" id = "" /> |
(62)缩写:input:color
别名:inp[type=color]
(63)缩写:input:checkbox
1
|
< input type = "color" name = "" id = "" /> |
(63)缩写:input:checkbox
别名:inp[type=checkbox]
(64)缩写:input:c
1
|
< input type = "checkbox" name = "" id = "" /> |
(64)缩写:input:c
别名:input:checkbox
(65)缩写:input:radio
1
|
< input type = "checkbox" name = "" id = "" /> |
(65)缩写:input:radio
别名:inp[type=radio]
(66)缩写:input:r
1
|
< input type = "radio" name = "" id = "" /> |
(66)缩写:input:r
别名:input:radio
(67)缩写:input:range
1
|
< input type = "radio" name = "" id = "" /> |
(67)缩写:input:range
别名:inp[type=range]
(68)缩写:input:file
1
|
< input type = "range" name = "" id = "" /> |
(68)缩写:input:file
别名:inp[type=file]
(69)缩写:input:f
1
|
< input type = "file" name = "" id = "" /> |
(69)缩写:input:f
别名:input:file
(70)缩写:input:submit
(71)缩写:input:s
1
|
< input type = "file" name = "" id = "" /> |
(70)缩写:input:submit
1
|
< input type = "submit" value = "" /> |
(71)缩写:input:s
别名:input:submit
(72)缩写:input:image
(73)缩写:input:i
1
|
< input type = "submit" value = "" /> |
(72)缩写:input:image
1
|
< input type = "image" src = "" alt = "" /> |
(73)缩写:input:i
别名:input:image
(74)缩写:input:button
(75)缩写:input:b
1
|
< input type = "image" src = "" alt = "" /> |
(74)缩写:input:button
1
|
< input type = "button" value = "" /> |
(75)缩写:input:b
别名:input:button
(76)缩写:isindex
(77)缩写:input:reset
1
|
< input type = "button" value = "" /> |
(76)缩写:isindex
1
|
< isindex /> |
(77)缩写:input:reset
别名:input:button[type=reset]
(78)缩写:select
(79)缩写:option
(80)缩写:textarea
(81)缩写:menu:context
1
|
< input type = "reset" value = "" /> |
(78)缩写:select
1
|
< select name = "" id = "" ></ select > |
(79)缩写:option
1
|
< option value = "" ></ option > |
(80)缩写:textarea
1
|
< textarea name = "" id = "" cols = "30" rows = "10" ></ textarea > |
(81)缩写:menu:context
别名:menu[type=context]>
(82)缩写:menu:c
1
|
< menu type = "context" ></ menu > |
(82)缩写:menu:c
别名:menu:context
(83)缩写:menu:toolbar
1
|
< menu type = "context" ></ menu > |
(83)缩写:menu:toolbar
别名:menu[type=toolbar]>
(84)缩写:menu:t
1
|
< menu type = "toolbar" ></ menu > |
(84)缩写:menu:t
别名:menu:toolbar
(85)缩写:video
(86)缩写:audio
(87)缩写:html:xml
(88)缩写:keygen
(89)缩写:command
(90)缩写:bq
1
|
< menu type = "toolbar" ></ menu > |
(85)缩写:video
1
|
< video src = "" ></ video > |
(86)缩写:audio
1
|
< audio src = "" ></ audio > |
(87)缩写:html:xml
1
|
|
(88)缩写:keygen
1
|
< keygen /> |
(89)缩写:command
1
|
< command /> |
(90)缩写:bq
别名:blockquote
(91)缩写:acr
1
|
< blockquote ></ blockquote > |
(91)缩写:acr
别名:acronym
(92)缩写:fig
1
|
< acronym title = "" ></ acronym > |
(92)缩写:fig
别名:figure
(93)缩写:figc
1
|
< figure ></ figure > |
(93)缩写:figc
别名:figcaption
(94)缩写:ifr
1
|
< figcaption ></ figcaption > |
(94)缩写:ifr
别名:iframe
(95)缩写:emb
1
|
< iframe src = "" frameborder = "0" ></ iframe > |
(95)缩写:emb
别名:embed
(96)缩写:obj
1
|
< embed src = "" type = "" /> |
(96)缩写:obj
别名:object
(97)缩写:src
1
|
< object data = "" type = "" ></ object > |
(97)缩写:src
别名:source
(98)缩写:cap
1
|
< source ></ source > |
(98)缩写:cap
别名:caption
(99)缩写:colg
1
|
< caption ></ caption > |
(99)缩写:colg
别名:colgroup
(100)缩写:fst, fset
1
|
< colgroup ></ colgroup > |
(100)缩写:fst, fset
别名:fieldset
(101)缩写:btn
1
|
< fieldset ></ fieldset > |
(101)缩写:btn
别名:button
(102)缩写:btn:b
1
|
< button ></ button > |
(102)缩写:btn:b
别名:button[type=button]
(103)缩写:btn:r
1
|
< button type = "button" ></ button > |
(103)缩写:btn:r
别名:button[type=reset]
(104)缩写:btn:s
1
|
< button type = "reset" ></ button > |
(104)缩写:btn:s
别名:button[type=submit]
1
|
< button type = "submit" ></ button > |