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,即可生成:

 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;

原文地址:https://www.cnblogs.com/lykblog/p/4714954.html