Emmet是一款编辑器插件,支持多种编辑器支持。在前端开发中,Emmet 使用缩写语法,可以快速编写 HTML、CSS 以及实现其他的功能,极大的提高前端开发效率。
一般的使用方法:输入代码后按TAB键。
使用环境:
推荐以下两个:subline text2、atom (都需要安装相关的emmet插件)
关系:> + ^
①从属关系: >
div>ul>li
![img_2458c81cfbb4dca93cf6984f23cf9a6a.png](https://yqfile.alicdn.com/img_2458c81cfbb4dca93cf6984f23cf9a6a.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li
②平行关系: +
div+div+div
![img_535c2c5cd36b1c6a88f3afb248a9d8e9.png](https://yqfile.alicdn.com/img_535c2c5cd36b1c6a88f3afb248a9d8e9.png?x-oss-process=image/resize,w_1400/format,webp)
div+div+div
③向上一级: ^
div+div>ul>li^p+div
有几个^就向上几级
![img_bb7a27bc23cd29a63277f1622a8688b4.png](https://yqfile.alicdn.com/img_bb7a27bc23cd29a63277f1622a8688b4.png?x-oss-process=image/resize,w_1400/format,webp)
div+div>ul>li^p+div
四则运算: * ()
④乘法: *
div>ul>li*5
![img_34403ad81127ddf6e9380dc08da255bb.png](https://yqfile.alicdn.com/img_34403ad81127ddf6e9380dc08da255bb.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li*5
⑤分组: ()
(div>ul>li)+div>table>(tr+td)*3+(div)
![img_5a4a3929991789dbd5797d83d67676c3.png](https://yqfile.alicdn.com/img_5a4a3929991789dbd5797d83d67676c3.png?x-oss-process=image/resize,w_1400/format,webp)
(div>ul>li)+div>table>(tr+td)*3+(div)
举个反例:
div>ul>li+div>table>(tr+td)*5+div
![img_30cde9fd4d0aea8edc6a82a1c1bbce6f.png](https://yqfile.alicdn.com/img_30cde9fd4d0aea8edc6a82a1c1bbce6f.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li+div>table>(tr+td)*5+div
属性操作 # . [] $ @ -
⑥ID和class
div#header.box1+div.warp+div#footer
![img_b75f1969c635ff77dbf82848c743a2b8.png](https://yqfile.alicdn.com/img_b75f1969c635ff77dbf82848c743a2b8.png?x-oss-process=image/resize,w_1400/format,webp)
div#header.box1+div.warp+div#footer
id用#,class用. 这个是html+css的基础内容啦~
⑦自定义属性
div[title='header' colspan=3]
![img_e8427478c5969c4a94860dc5626a8d28.png](https://yqfile.alicdn.com/img_e8427478c5969c4a94860dc5626a8d28.png?x-oss-process=image/resize,w_1400/format,webp)
div[title='header' colspan=3]
⑧元素编号
div>ul>li.item$*5
![img_6c7e98676a84839e67cb9ce422e9f763.png](https://yqfile.alicdn.com/img_6c7e98676a84839e67cb9ce422e9f763.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li.item$*5
$符号可以自动从1开始编号。多个$也有特殊效果例如:
div>ul>li.item$$$*5
![img_709a158e4074287954b9168b81ed543c.png](https://yqfile.alicdn.com/img_709a158e4074287954b9168b81ed543c.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li.item$$$*5
当然,还有特殊玩法:
- 比如,我不想从1开始编,可以用@符号来修改当前的编号
div>ul>li.item$$$@4*5
![img_5183e073fae0569d24b3fcb206fb8ab3.png](https://yqfile.alicdn.com/img_5183e073fae0569d24b3fcb206fb8ab3.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li.item$$$@4*5
emmet会自动从4开始往后编号
- 又比如,我想让他倒着编号,从最大号到最小的一号:
div>ul>li.item$$$@-*5
![img_11b59fe9bb66a62fc0d429e8c5f30707.png](https://yqfile.alicdn.com/img_11b59fe9bb66a62fc0d429e8c5f30707.png?x-oss-process=image/resize,w_1400/format,webp)
div>ul>li.item$$$@-*5
当然,两者加在一起用也是可以的。
文本操作: {}
⑨给元素添加内容:
a{Click here to fly}
![img_21768645d78f1a397b55ab1cfd03fb65.png](https://yqfile.alicdn.com/img_21768645d78f1a397b55ab1cfd03fb65.png?x-oss-process=image/resize,w_1400/format,webp)
a{Click here to fly}
注意:
a{click}+b{here} 和 a>{click}+b{here} 结果是不一样的
a{click}+b{here}
![img_ef49469ed71f879ba0b088016d5aae4c.png](https://yqfile.alicdn.com/img_ef49469ed71f879ba0b088016d5aae4c.png?x-oss-process=image/resize,w_1400/format,webp)
a{click}+b{here}
a和b首先是平行关系,其次再转译;
a>{click}+b{here}
![img_085096a6902fe72a62765a8a8816b4fa.png](https://yqfile.alicdn.com/img_085096a6902fe72a62765a8a8816b4fa.png?x-oss-process=image/resize,w_1400/format,webp)
a>{click}+b{here}
而在这里,b是从属于a的,所以生成的是b被包含于a中的语句,
即爸爸永远是你爸爸,即使对a进行了添加内容的操作,不会改变上下级的关系。
举一个更复杂的例子:
p>{Click}+a{here}+{to continue}
![img_a53374fde0a5aee0da255fdd98ae1d2d.png](https://yqfile.alicdn.com/img_a53374fde0a5aee0da255fdd98ae1d2d.png?x-oss-process=image/resize,w_1400/format,webp)
p>{Click}+a{here}+{to continue}
首先在p中生成一个Click,再生成一个a,内容是here,在</a>之外再生成一个to continue
其他功能
- 键入一个html:5可以得到
![img_c4f367a55613af7a6fc26fecb262da47.png](https://yqfile.alicdn.com/img_c4f367a55613af7a6fc26fecb262da47.png?x-oss-process=image/resize,w_1400/format,webp)
html:5
这样一个html的框架,效率就很高~
- !
跟上面的效果一致
- 所有未知的缩写都会被转化成标签,例如输入一个foo
![img_b34ac5d19dc210449a535d4476baaa21.png](https://yqfile.alicdn.com/img_b34ac5d19dc210449a535d4476baaa21.png?x-oss-process=image/resize,w_1400/format,webp)
foo
- a:link
![img_6b21e4310b68d2afa6570c8a8744b7bb.png](https://yqfile.alicdn.com/img_6b21e4310b68d2afa6570c8a8744b7bb.png?x-oss-process=image/resize,w_1400/format,webp)
a:link
- img
![img_6301d8a7fca401b76a6c19bb4f3a320f.png](https://yqfile.alicdn.com/img_6301d8a7fca401b76a6c19bb4f3a320f.png?x-oss-process=image/resize,w_1400/format,webp)
img
其他功能和复杂玩法请自行摸索~
!>(div#header>nav)+(div#content)+(div#footer)
![img_246fa0c90c928565a7e70a5ab9935abc.png](https://yqfile.alicdn.com/img_246fa0c90c928565a7e70a5ab9935abc.png?x-oss-process=image/resize,w_1400/format,webp)
!>(div#header>nav)+(div#content)+(div#footer)
这个就能生成一个大体上的包含header、主体、footer在内的一个html5的开发框架啦~
ps:并没有采用很专业的术语,想让内容看起来尽可能的通俗易懂适合大多数人,特别是我接下来要带的学弟和学妹们~
2017年12月7日 21点26分
参考:
https://www.w3cplus.com/tools/emmet-cheat-sheet.html
https://segmentfault.com/a/1190000007812543