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 中