Emmet的简写的原理有点像CSS技术里面的Class选择器,区别是它使元素分层结构以及其标签的属性表达起来更轻便。
译者注:如果你不知道我说的是什么,这有个视频,应该更直观一些。
http://v.youku.com/v_show/id_XMTM4NDQwNzgw.html
你可以用标签名如div、p直接生成完整的HTML标签。Emmet可没有定义什么标签合法,因此你可以随便写点什么都可以生成相应的标签,如div---><div></div>,foo---><foo></foo>。
译者注:eclipse里输入div单击tab键会自动生成<div></div>,亲,别说你的eclipse还没装Emmet扩展~什么,你没时间装?装吧你就,这有个地址你可以在线尝试一下,“ctrl+,”可以展开简写输入式,注意是英文状态下的“,”。
这里的嵌套标签包括两种,标签并列和标签嵌套。
你可以用“>”来描述标签之间的嵌套关系:
div>ul>li
展开中...
<div> <ul> <li></li> </ul> </div>
用"+"可以来描述标签之间的并列关系:
div+p+bq
展开中...
<div></div> <p></p> <blockquote></blockquote>
通过“^”你可以让之后的元素与和更高一层的元素并列,下面是使用前后的对比:
div+div>p>span+em
展开中...
<div></div> <div> <p><span></span><em></em></p> </div>
展开中...
<div></div> <div> <p><span></span><em></em></p> <blockquote></blockquote> </div>
div+div>p>span+em^^^bq
展开中...
<div></div> <div> <p><span></span><em></em></p> </div> <blockquote></blockquote>
“*”可以实现输入多个标签:
ul>li*5
展开中...
<ul> <li></li> <li></li> <li></li> <li></li> <li></li> </ul>
div>(header>ul>li*2>a)+footer>p
展开中...
<div> <header> <ul> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </header> <footer> <p></p> </footer> </div>
(div>dl>(dt+dd)*3)+footer>p
展开中...
<div> <dl> <dt></dt> <dd></dd> <dt></dt> <dd></dd> <dt></dt> <dd></dd> </dl> </div> <footer> <p></p> </footer>
是的,你没看错。Emmet允许你在输入标签的同时输入它的属性。比如,HTML和XML里面的class属性。
CSS里面#id和.class可以描述元素的id和class属性,在Emmet也一样:
div#header+div.page+div#footer.class1.class2.class3
展开中...
<div id="header"></div> <div class="page"></div> <div id="footer" class="class1 class2 class3"></div>
你可以使用[attr]来设置元素的其他属性:
td[title="hello world" colspan=3]
展开中...
<td title="Hello world!" colspan="3"></td>
ul>li.item$*5
展开中
<ul> <li class="item1"></li> <li class="item2"></li> <li class="item3"></li> <li class="item4"></li> <li class="item5"></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>
a{click me}
展开中...
<a href="">Click me</a>接下来的功能很有趣:
a{click}和a>{click}展开后是一样的,但a{click}+b{click}和a>{click}+b{click}是不一样的:
<!-- a{click}+b{here} --> <a href="">click</a><b>here</b> <!-- a>{click}+b{here} --> <a href="">click<b>here</b></a>
p>{Click}+a{here}+{to continue}
展开中...
<p>Click <a href="">here</a> to continue</p>
p{Click}+a{here}+{to continue}
展开中...
<p>Click </p> <a href="">here</a> to continue
也许你会加入一些格式来上你的简写输入式可读性更强,比如使用空格,但那只会让你的代码不能展开。有些人会人为只有在新的一行才能展开,别傻了,实际上在哪都行。
原文地址:http://docs.emmet.io/abbreviations/syntax/