Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具:

基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们称之为“片段”。虽然片段能很好地推动你得生产力,但大多数的实现都有这样一个缺点:你必须先定义你得代码片段,并且不能再运行时进行拓展。

从官方的文章中引用出来的话,我们写html的时候效率最高的是将常用的模块封装好,然后在需要的时候直接把这个模块复制进入自己的项目中,这样会存在很多问题(功能大多数都是自定义的需求)。

举个栗子:我们定义好了模块,然后在实际项目中直接复制粘贴,但是模块的代码少了两个功能,这样就要在原有的基础上添加功能;
又或者是多出来了一些功能,我们要删除它们。

这样一来,就很容易将项目写乱,比如成对的标签删除了一个结束的标签,导致网页无法成为自己预期的样子。

Emmet语法可以用缩写 来动态生成我们所需要生成出我们所需要的样式,在短时间做出来一个模板,然后使用,这是一个能够大幅度提高效率的工具。

Emmet使用方法

1.生成HTML文档初始机构 

! + tab 获取 html5 +tab 


2.生成HTML4过渡型 

html:xt + tab

3.生成HTML4严格型 

html:4s + tab

4.生成html标签的闭合

标签 + tab  其实它可以帮助我们判断这个标签到底是需要闭合还是不闭合的

5.生成含有id,class的标签

#为id, .为class


6.生成后代: >

父标签>子标签 

例如输入p>span 则生成 <p><span></span></p>

7.生成兄弟标签: +

例如输入p+div 则生成 <p></p><div></div>

8.生成上级标签: ^

例如输入ul>li>a^div 则生成

也可以使用多个 ^, 这样就是上层的上层了

例如输入ul>li>a^^div 则生成

9.重复生成多个标签 *

例如输入ul>li*5 则生成

10.生成分组的标签 ()

例如输入ul>(li>a)*5 则生成

注意和ul>li>a*5 生成是不一样的


11.生成自定义属性 []

例如输入img[src=https://pic.jj20.com/up/allimg/mn01/041019235110/1Z410235110-0.jpg][alt=美女] 则生成

12.生成递增的属性标签等: $

例如输入ul>li.item$*5 则生成

13.生成多位递增的呢:$$$

例如输入ul>li.item$$$*5 则生成

想生成几位输入几个$

14.要生成递减:@-

例如输入ul>li.item$@-*5 则生成

15.想要从某个特定的顺序开始呢:@N

例如输入ul>li.item$@10*5 则生成

16.逆序生成到某个数:@-

例如输入ul>li.item$@-10*5 则生成

17.生成文本内容:{}

例如输入p{我叫MT} 则生成

18.缺省元素: 

声明一个带class的div 可以不用输入div;
.header+.footer 则生成:

Emmet 还会根据父标签进行判定
例如输入ul>.item*3 则生成:

 

下面是所有的隐式标签名称:


li:用于 ul 和 ol 中

tr:用于 table、tbody、thead 和 tfoot 中

td:用于 tr 中

option:用于 select 和 optgroup 中

p 表示%

e 表示 em

x 表示 ex

‘# 1’ → #111111

‘#e0’ → #e0e0e0

‘#fc0’ → #ffcc00

生成 !important 这条语句也当然很简单,只需要一个 “!” 就可以。


CSS 编写

以下是CSS的简写。其实这个我觉得写后端的人可能比较难以记忆了,做个补充,省得以后再百度了。

@font-face、 text-outline、 text-shadow 等属性,我们可以在生成的时候输入 “+” 生成增强的结构,例如我们可以输入 @f+ 命令,即可输出选项增强版的 font-face 结构:

 这个效果在webstorm中是可以的,但是在hbuilderX开发工具中不行


3.模糊匹配


如果有些缩写你拿不准,Emmet 会根据你的输入内容匹配最接近的语法,比如输入 ov:hov-hovh 和 oh,生成的代码是相同的:

 这里用+连接起来一次生成,发现都是一样的,一样的,一样的。。。。


4.供应商前缀


CSS3 等现在还没有出正式的 W3C 规范,但是很多浏览器已经实现了对应的功能,仅作为测试只用,所以在属性前面加上自己独特的供应商前缀,不同的浏览器只会识别带有自己规定前缀的样式。然而为了实现兼容性,我们不得不编写大量的冗余代码,而且要加上对应的前缀。使用 Emmet 可以快速生成带有前缀的 CSS3 属性。
在任意字符前面加上一条横杠(-),即可生成该属性的带前缀代码,例如输入 -foo-css,会生成:


虽然 foo-css 并不是什么属性,但是照样可以生成。此外,你还可以详细的控制具体生成哪几个浏览器前缀或者先后顺序,使用 -wm-trf 即可生成:

可想而知,w 就是 webkit 前缀的缩写,m 是 moz 前缀缩写,s 是 ms 前缀缩写,o 就是 opera 浏览器前缀的缩写。如果使用 -osmw-abc 即可生成:


5.渐变背景


CSS3 中新增加了一条属性 linear-gradient 使用这个属性可以直接制作出渐变的效果。但是这个属性的参数比较复杂,而且需要添加实验性前缀,无疑需要生成大量代码。而 在 Emmet 中使用 lg()指令即可快速生成,例如:使用 lg(left,#fff,50%,#000)可以直接生成:

webstorm,hbuilderx都没实验出来。。。。


6.附加功能


生成Lorem ipsum文本
Lorem ipsum 指一篇常用于排版设计领域的拉丁文文章,主要目的是测试文章或文字在不同字型、版型下看起来的效果。通过 Emmet,你只需输入 lorem 或 lipsum 即可生成这些文字。还可以指定文字的个数,比如 lorem10,将生成:

hbuilderx测试可以,webstorm不可以 



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部