在tutsplus 那里看到一篇文章介绍Emmet 的用法,形象的gif图片一目了然,原本想翻译过来的(虽然翻译用法倒不是很难),但搜索发现已经有国人翻译过了,遂直接拿来转载在这里。css
Emmet插件之前被称做为Zen Coding,是一个文本编辑器的插件,它能够帮助您快速编写HTML和CSS代码,从而加速Web前端开发。html
Emmet只是文本编辑器一个插件,要想让他发挥应用的功能,就得将其安装到你喜欢的文本编辑器中。到目前为止,不少流行的文本编辑器都支持Emmet插件,也就是说不少流行的文本编辑器(如Sublime Text、Notepad++、Adobe Dreamweaver)均可以安装这款插件。前端
在这里主要介绍一下Sublime Text中安装Emmet 插件的方法,首先确保你已经安装Sublime Text。Jeff 用的是Sublime Text3,方法有两种:web
一、直接下载该压缩包,解压后放到“程序包”内(sb中 点击 preferens-浏览程序包 后打开的文件夹)。而后重启Sublime Text 便可。c#
二、先安装 Package Control,而后搜索找到Emmet 插件安装。sublime-text
Emmet使用定义的缩写来生成元素。他的语法和CSS的选择器很是相似:app
1 |
ul>li>img+p |
一旦你写好缩写以后,按一下tab
键(我使用的是Sublime Text编辑器)就能生成你所请求的代码。上面的例子将会产生下面的代码:sublime-text-3
1 2 3 4 5 6 |
<ul> <li> <img src="" alt=""> <p></p> </li> </ul> |
早前在《前端开发必备!Emmet使用手册》一文中详列了Emmet生成HTML代码的一些代码示例。接下来,让咱们来深刻一点了解Emmet语法,来看看如何经过一些更复杂的缩写建立HTML标签。编辑器
任何一个HTML文件,都具备一些默认的文档结构。使用Emmet来建立须要的时间不到一秒。只要输入!
或html:5
,而后点击tab
键,你就会看到一个HTML5的doctype
默认标签。工具
html:5
或!
:HTML5文档类型html:xt
:XHTML过渡型文档类型html:xs
:XHTML严格型文档类型html:4t
:HTML4过渡型文档类型html:4s
:HTML4严格型文档类型>
使用>
运算符能够用来生成彼此嵌套的元素:
1 |
section>div>p |
上面的代码会生成下面的代码:
1 2 3 4 5 |
<section> <div> <p></p> </div> </section> |
+
使用+
运算符能够用来生成彼此相邻的元素:
1 |
section+div+p |
上面代码会生成下面的代码:
1 2 3 |
<section></section> <div></div> <p></p> |
^
使用^
运算符,可让你的代码返回上一层。当你使用>
嵌套元素时,想让后面的回到上一层,那么这个方法很适用。
1 |
section>div>p>a^p |
这个缩写将两个段落元素都放置在div
内,但只有第一个段落里会包含一个连接。
1 2 3 4 5 6 |
<section> <div> <p><a href=""></a></p> <p></p> </div> </section> |
其实这个就至关于:
1 |
section>div>(p>a)+p |
*
若是你想一次性生成多个相同的元素,好比列表中的li,那么就可使用乘法运算符*
:
1 |
ul>li*5 |
上面代码会生成5个li
:
1 2 3 4 5 6 7 |
<ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> |
除了能一次性生成多个相同的标签以外,咱们还能够经过$
符号作递增;经过$@-
符号作递减;经过$@3*5
这样的方式从第三个开始命名:
为了更有效的利用嵌套,咱们常会制做一些代码片断。在Emmet中你能够经过()
将一个块组合在一块儿,来看一个简单的示例:
1 |
ul>(li>a)*3 |
上面的代码就会生成3个li
,并且每一个li
中套了一个a
:
1 2 3 4 5 |
<ul> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul> |
在咱们一个页面中,常会包括页头、主体和页脚三个部分,咱们不少时候就能够经过对全们进行一个组合,快速生成有效的代码:
在Emmet中,还有一个功效,能快速帮助你添加类名、ID、文本和属性。
E#ID
添加ID名E.class
添加类名E[attr]
添加属性E{text}
添加文本在Emmet中能够省略标签名,默认状况下,如.item
和div.item
起到的做用是一致的<div></div>
。在实际中还有几种状况:
ul
和 ol
中输入指的是li
table
、tbody
、thead
和tfoot
指的是tr
tr
中指的是td
select
和optgroup
指的是option
不少文章都是介绍Emmet和HTML之间的实现方式,但Josh Medeski的《Turbo-Charge Your CSS With Emmet》一文详细介绍了Emmet和CSS之间的实现方式。接下来的代码和图片主要来自于此文章。
CSS提供了属性的值,好比font-size
,margin
和 padding
等等:
Emmet定义了全部已知的CSS属性和缩写。因此border-bottom
缩写是bdb
,border-top
缩写是bdt
。正以下面的示例font-size
缩写是fz
:
假设你在你的编辑器中输入fz
,而后按一下tab
键,Emmet就像一个魔法师同样将缩写变成有效的CSS,而且放在你的光标之处。
如今咱们已经了解了CSS的属性,它只须要添加一个值。这是经过一个组合缩写和所须要的值一块儿来完成。例如,fz18
将输出font-size:18px
。你不须要输入px
,由于Emmet将会其单位是px
。若是一个项目没有一个单位(如font-weight
),Emmet会很聪明,他不会添加像素单位。
若是你在CSS不常用的像素(px
)单位,那会是什么?是em
、rem
、%
、ex
和px
吗?那么这些单位在Emmet中都是可使用的。在Emmet中每个单位都有其缩写形式:
px
→ 默认p
→ %
e
→ em
r
→ rem
x
→ ex
要使用一个单位,只须要在值的后面使用缩写的单位值。下面的例子是使用em
定义font-size
:
CSS中的某些属笥,好比margin
,容许多个值。在Emmet中要作到这一点,只须要每一个值之间使用破折号(-
)。来看看下面的例子,给body
定义margin
的四个值:
在Emmet中使用#
前缀,后面紧跟颜色值,但不一样的字符数将会输出不一样的十六进制代码。来看一些例子:
#1
→ #111111
#E0
→ #e0e0e0
#FC0
→ #FFCC00
下面定义经过c#2
定义body
的颜色值,将会输出#222
:
!important
尽管在CSS中!important
并不常用,但在Emmet也带有必定的缩写。添加!
就能够自动生成:
如今咱们具Emmet的CSS特性的一个基本了解,也是将它们放在一块儿的时候。就相似于Emmet和HTML中的相邻元素的功能。可使用加号+
运算符来建立多个属性。咱们来看一个简单的示例:
记住,你可使用全部缩写或者将其分开。这并非很重要,关键的是你要使用得正确,它能更容易让你编写你的CSS。这里有一个动画,他给div.panel
建立一些样式:
以上示例代码与演示图来自于Josh Medeski的《Turbo-Charge Your CSS With Emmet》一文。
Emmet是一个强大的工具,也被称为是一款高速的编码工具,它可让你花更少的时间作一样的事情,而无需手动建立本身的代码片断。Emmet的灵感来自于CSS选择器以及能够用于全部主要的文本编辑器,以适应开发者的工做流程。
请记住,你能够在你的工做流中添加任何新工具,这个学习过程也是一个曲线的过程,但你不要花费更多的时间作那些相同的事情。你只是须要按期的访问 Emmet文档,你就会慢慢熟悉Emmet中HTML和CSS的全部特性。让你少想,少写,实现更多想要的代码。
本文转载自http://devework.com/emmet-html.html