Emmet:HTML/CSS代码快速编写技巧
一、Emmet简介
Emmet的前身是Zen Coding,它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,由两个核心组件组成:一个缩写扩展器(缩写为像CSS一样的选择器)和上下文无关的HTML标签对匹配器。
二、快速编写HTML代码
1.初始化
HTML文档需要包含一些固定的标签,比如<html>,<head>,<body>等,利用Emmet可以1秒钟就可以完成这些标签的输入。
比如:输入“!”或“html:5”,然后按Tab键,就能生成:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
html:5或!:用于HTML5文档类型;
html:xt:用于XHTML过滤文档类型;
html:4s:用于HTML4严格文档类型。
2.轻松添加类,id,文本和属性
连续输入元素名称和ID,Emmet会自动补全,比如:输入p#foo,就能生成:
<p id="foo"></p>
连续输入类和id,比如:p.bar#foo,会自动生成:
<p class="bar" id="foo"></p>
定义元素的内容:
h1{内容}:
<h1>内容</h1>
定义元素的属性:
a[href=#]:
<a href="#"></a>
3.嵌套
利用Emmet只需一行代码就可以实现标签的嵌套:
>:子元素符号,表示嵌套的元素;
+:同级标签符号;
^:可以使用该符号前的标签提升一行。
比如:
p>span:
<p><span></span></p>
h1+h2:
<h1></h1><h2></h2>
p>span^p:
<p><span></span></p><p></p>
4.分组
利用Emmet可以通过嵌套和括号快速生成一些代码块,比如:输入(.foo>h1)+(#bar>h2),会自动生成:
<div class="foo"> <h1></h1> </div> <div id="bar"> <h2></h2> </div>
5.隐式标签
申明一个带类的标签,只需输入div.item,就会自动生成:
<div class="item"></div>
在过去版本中,可以省略掉div,即输入.item即可生成<div class="item"></div>。现在如果只输入.item,则Emmet会根据父标签进行判定。比如在<ul> 中输入.item,就会生成<li class="item"></li>。
li:用于ul和ol中;
tr:用于table、tbody、thead和tfoot中;
td:用于tr中;
option:用于select和optgroup中。
6.定义多个元素
要定义多个元素,可以使用符号*,比如:ul>li*5:
<ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
7.定义多个带属性的元素
输入ul>li.item$*3,将会自动生成:
<ul> <li class="item1"></li> <li class="item2"></li> <li class="item3"></li> </ul>
三、CSS缩写
1.值
比如要定义元素的宽度,只需输入w100,即可生成:
width: 100px;
除了px,还可以生成其他单位,比如输入h10p+m5e,会生成:
height: 10%; margin: 5em;
单位别名列表:
p:表示%;
e:表示em;
x:表示ex。
2.模糊匹配
如果有些缩写在写的时候拿捏不准,Emmet会根据输入的内容匹配最接近的语法,比如输入ov:h、ov-h、ovh和oh都会生成:
overflow: hidden;
3.供应商前缀
如果输入非W3C标准的CSS属性,Emmet会自动加上供应商前缀,比如输入trs,则会生成:
-webkit-transition: prop time; -moz-transition: prop time; -ms-transition: prop time; -o-transition: prop time; transition: prop time;
如果不希望加上所有前缀,也可以使用缩写来指定,比如输入:-wm-trf,表示只加上-webkit和-moz前缀:
-webkit-transform: ; -moz-transform: ; transform: ;
前缀说些如下:
w:表示-webkit-;
m:表示-moz-;
s:表示-ms-;
o:表示-o-。
4.渐变(webStorm不支持)
输入lg(left,#fff 50%,#000),会自动生成:
background-image: -webkit-gradient(linear, 0 0, 100% 0, color-stop(0.5, #fff), to(#000)); background-image: -webkit-linear-gradient(left, #fff 50%, #000); background-image: -moz-linear-gradient(left, #fff 50%, #000); background-image: -o-linear-gradient(left, #fff 50%, #000); background-image: linear-gradient(left, #fff 50%, #000);
四、针对不同编辑器的插件
Emmet支持如下编辑器:
1.Sublime Text 2;
2.TextMate 1.X;
3.Eclipse/Aptana;
4.Coda 1.6 and 2.x;
5.Espresso;
6.Chocolat(通过“Install Mixin”对话框添加);
7.Komodo Edit/IDE(通过Tools → Add-ons菜单添加);
8.Notepad++;
9.PSPad;
10.<textarea>;
11.CodeMirror2/3;
12.Brackets;
13.WebStorm;