emmet(原名zen coding):是文本编辑器的一款辅助输入HTML和CSS代码的插件。现在可支持以下的文本编辑器:
Sublime Text 2
TextMate 1.x
Eclipse/Aptana
Coda 1.6 and 2.x
Espresso
Chocolat (可以通过 “Install Mixin” 对话框安装)
Komodo Edit/IDE ( Tools → Add-ons)
Notepad++
PSPad
CodeMirror2/3
Brackets
在上面列表点击你目前使用的编辑器,就可以获得对应的插件文件,安装之后就可以使用 Emmet 的相关功能了。由于 Sublime text 2 是目前最好最强大的前端开发代码编辑器,所以本文就以 Sublime text 2文档编辑器中使用为例,讲解基础语法。
1,初始化文档
当我们开始编写一个html文档时,有些固定的标签是可以快速生成的。在sublime text2中新建文件,另存为html格式。输入:
!或者html:5 , 然后tab键或者Ctrl+e 快速加载HTML5文档。他类型的文档:
html:5 或!:用于HTML5文档类型
html:xt:用于XHTML过渡文档类型
html:4s:用于HTML4严格文档类型
2,单个DOM元素
在html文档中输入以下格式,然后按下tab键可以快速补全新建的元素,并赋值相应的属性:
2.1,div#myDiv 按Tab键
<div id="myDiv"></div>
2.2,“.”号表示class 名
div.myDiv
<div class="myDiv"></div>
2.3,“#”号表示Id
div#testId.testName
<div id="testId" class="testName"></div>
2.4,大括号{}内添加的是内容
div{thisismydiv}
<div>thisismydiv</div>
2.5,方括号[]可赋值属性。
scrip[src=”/local/my/.js”]
<script src="/local/my/.js"></script>
3,DOM元素嵌套
emmet的补全功能很强大,一行代码就可以实现DOM元素的嵌套,我们首先熟悉下元素关系符号:
:子元素符号,表示嵌套的元素
+:同级标签符号
^:可以使该符号后的标签提升一级
下面给出了例子, 输入以下格式,然后按下Tab键,快速产生嵌套元素:
3.1,div>span
<div><span></span></div>
3.2,div#parDiv>div.childnode
然后Tab
<div id="parDiv">
<div class="childnode"></div>
</div>
3.3,div+div+div
<div></div>
<div></div>
<div></div>
3.4,div^p
<div></div>
<p></p>
3.5,span>div^div#sss
<span>
<div></div>
</span>
<div id="sss"></div>
注意与: span>div+div#sss 的区别:
<span>
<div></div>
<div id="sss"></div>
</span>
4,嵌套结合括号
嵌套加上使用括号(),可快速生产一些代码块:
div#block1>span)+(div#block2>ul>li)+(.block3>h1) 接着按下Tab键
div id="block1"><span></span></div>
<div id="block2">
<ul>
<li></li>
</ul>
</div>
<div class="block3">
<h1></h1>
</div>
注意:以上id为block3的标签还使用了隐式标签。输入“.item”即可生成
<div class="item"></div>
现在,emmet还会根据上下文判断隐式标签给出div还是其他,如:
ul>.myitem
<ul>
<li class="myitem"></li>
</ul>
这里有素有隐式标签名称:
li:用于ul和ol中
tr:用于table、tbody、thead和tfoot中
td:用于tr中
option:用于select和optgroup中
5,定义多个元素
这个是个很有用的功能。使用*定义多个元素,下面在例子中学习,同样的,输入公式后按Tab键,就不一一标注了:
5.1, ul>li*3
<ul>
<li></li>
<li></li>
<li></li>
</ul>
5.2,结合属性使用:div#outer>div#childDiv*3
<div id="outer">
<div id="childDiv"></div>
<div id="childDiv"></div>
<div id="childDiv"></div>
</div>
5.3 使用$来依次编号各元素:div>ul>li.item$*5
<div>
<ul>
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>
<li class="item4"></li>
<li class="item5"></li>
</ul>
</div>
5.4 使用”$@-“符号号,来反向编号:div>ul>li.item$@-*5
<div>
<ul>
<li class="item5"></li>
<li class="item4"></li>
<li class="item3"></li>
<li class="item2"></li>
<li class="item1"></li>
</ul>
</div>
5.5 使用“$@数字”从指定的数字开始编号,例如“$@3”从3开始标号:
div>ul>li#itme$@3*6
<div>
<ul>
<li id="itme3"></li>
<li id="itme4"></li>
<li id="itme5"></li>
<li id="itme6"></li>
<li id="itme7"></li>
<li id="itme8"></li>
</ul>
</div>
记住以上公式,能够大大提高写代码的效率。