使用Emmet提高前端开发效率
使用Emmet提高前端开发效率
author: histonevon@zohomail.com
environment: Visual Studio Code
本文是学习笔记,只介绍简单的功能
一、关于Emmet(来自Wikipedia)
Emmet(以前名为Zen Coding)是一套面向文本编辑器的插件,它允许通过内容辅助高速度的编写和编辑HTML、XML、XSL和其他结构化的代码格式。
Emmet以MIT许可证开源。
二、Emmet语法
嵌套操作符
嵌套操作符用来生成元素的DOM树中的兄弟节点或子节点
Child:>
使用
>生成元素子节点例如
div>ul>li可以被转义成<div> <ul> <li></li> </ul> </div>
Sinling:+
使用
+生成兄弟节点例如
div+p会被转义成<div></div> <p></p>
Climb-up:^
使用^在元素父节点生成新的节点
例如
div>ul>li^p会被转义成<div> <ul> <li></li> </ul> <p></p> </div>用n个^就可以在第n父级生成新的节点
div>ul>li>a^^^p<div> <ul> <li><a href="#"></a></li> </ul> </div> <p></p> <!--a的父父父级节点是div,在div同级生成p节点-->
Multiplication:*
使用
*生成多个相同元素例如:
ul>li*5<ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>也可以嵌套
ul*3>li*4<ul> <li></li> <li></li> <li></li> <li></li> </ul> <ul> <li></li> <li></li> <li></li> <li></li> </ul> <ul> <li></li> <li></li> <li></li> <li></li> </ul>
Grouping:()
圆括号
()用来实现较复杂的DOM结构div>(ul>li*3>a)+ol>li*2>p<div> <ul> <li> <a href=""></a> </li> <li> <a href=""></a> </li> <li> <a href=""></a> </li> </ul> <ol> <li> <p></p> </li> <li> <p></p> </li> </ol> </div>圆括号也可以嵌套
属性操作符
id和class
Emmet给元素添加id和class的方法与CSS选择器语法类似
div#header+div.page*3+div#footer<div id="header"></div> <div class="page"></div> <div class="page"></div> <div class="page"></div> <div id="footer"></div>可以混用或多重使用
div#id1.class1+div#id2.class2.class3<div id="id1" class="class1"></div> <div id="id2" class="class2 class3"></div>id如果出现多个以最后一个为准
自定义属性
使用
[ ]来添加自定义属性img[src="Hi" alt="Hello"]<img src="Hi" alt="Hello World">
元素编号
使用
$操作符可以对重复元素进行有序编号.demo$*5<div class="demo1"></div> <div class="demo2"></div> <div class="demo3"></div> <div class="demo4"></div> <div class="demo5"></div>ul#a$*3>li.b$*4<ul id="a1"> <li class="b1"></li> <li class="b2"></li> <li class="b3"></li> <li class="b4"></li> </ul> <ul id="a2"> <li class="b1"></li> <li class="b2"></li> <li class="b3"></li> <li class="b4"></li> </ul> <ul id="a3"> <li class="b1"></li> <li class="b2"></li> <li class="b3"></li> <li class="b4"></li> </ul>可以用多个$定义编号格式
ul>li.item$$$*5<ul> <li class="item001"></li> <li class="item002"></li> <li class="item003"></li> <li class="item004"></li> <li class="item005"></li> </ul>
其他编号方式
通过
@符号可以获得其他多样的编号格式在$后面添加
@-可以改变编号的顺序,即可以变成倒序(VS code 好像对此支持不好)在$后面添加 @n 可以改变编号基数
div.demo$@3*5<div class="demo3"></div> <div class="demo4"></div> <div class="demo5"></div> <div class="demo6"></div> <div class="demo7"></div>
文本操作符
使用 { } 给元素添加文本内容
div{demo}<div>demo</div>div{demo$}*5<div>demo1</div> <div>demo2</div> <div>demo3</div> <div>demo4</div> <div>demo5</div>注意:
a{demo}和a>{demo}有相同的结果<!-- a{demo} --> <a href="">demo</a> <!-- a>{demo} --> <a href="">demo</a>但是:
a{demo}+p{msg}和a>{demo}+p{msg}结果不同(由于>会创建子节点)<!-- a{demo}+p{msg} --> <a href="">demo</a> <p>mag</p> <!-- a>{demo}+p{msg} --> <a href=""> demo <p>msg</p> </a>