Emmet是干啥的?为什么要用Emmet
在前端开发过程中,重复代码片段是比不可少的。Emmet就是一款生成HTML+CSS代码片段的神器。初识Emmet是在VS code上,因为没有发现自带HTML摸板……去问怎么快速生成。回答曰,!+Tab
键即可。这就是因为VS code中内置了Emmet,而!+Tab
也就是Emmet快速生成<!DOCTYPE html>
代码片段的快捷键。
中文文档
http://yanxyz.github.io/emmet-docs/全部功能请移步中文文档。看上去很牛逼,但是有很多功能在webstorm和VS code中并不能用……不知道是快捷键冲突还是什么其他原因。
常用功能
类CSS写法
- 后代:>
- 兄弟:+
- 添加ID:#
- 添加class:.
- 自定义属性:如
p[title="Hello world"]
就是<p title="Hello world"></p>
- 文本:{}如
a{Click me}
就是<a href="">Click me</a>
独特写法
- 分组:()
- 上级:^
- 简写:
:
可以简写一部分常见type,比如input:file
就是<input type="file" name="" id="">
,form:post
就是<form action="" method="post"></form>
,link:favicon
就是<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
防复读机
- 乘法:*,可以重复元素。
- 自增符号:$,多个$可以表达多个位数如$$$就是从0001开始。
- 修饰符:@,配合自增符号使用,可以改变编号的方向(升序或降序)及起点。将@- 放在$后,可以改为降序。将@N放在$后,可以改变起点,如@3就从3开始增加。
- 随机生成英文字符:lorem,后面可以加数字lorem30就是生成30个随机字符。
CSS简单缩写处理
大多数情况还是要用自动化构建工具,比如postcss
。
- 厂商前缀:
-wmso-
+需要加前缀的属性即可,wmso即webkit,moz,ms,o的缩写。
小小疑惑
Emmet在某次更新后改成了H5类型的标签不闭合模式,无论当前文档模式是如何。比如input
标签就会补全为<input>
而不是<input/>
或者<input></input>
。在webstorm环境下似乎还没啥快捷改回去的方法,用兼容性模式看了下暂时也没发现什么问题,可以先用着。