Emmet快速编写HTML代码
缩写是Emmet工具的核心,这些特殊的表达式通过Emmet解析并转化为结构化的代码块,而语法用CSS选择器,HTML标签和一些Emmet特定的代码生成,所以对于任何一个前端开发人员都可以很容易地掌握和使用。
你可以使用标签名称为div、p等生成HTML标签,Emmet没有一组预定义可用的标记名称,您可以编写任何单词并把它转化为一个标签,例如:
- div → <div></div>, footer → <footer></footer>
 
Emmet代码虽然没有特定的标签,但编写时还是有一定的规则与技巧,下面我们就看一看:
1、生成HTML文件的初始结构:
之前我们会用软件直接新建一个HTML文档,初始结构就生成了,但有些编辑器是不带这个功能的,手动输入是件痛苦的事,有了Emmet一切变得如此简单。生成HTML4(过渡)结构初始文档只需输入“html:4t”,HTML4(严格)结构初始文档只需输入“html:4s”,将生成标准的HTML4(严格)标准结构:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 - <html lang="en">
 - <head>
 - <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 - <title>Document</title>
 - </head>
 - <body>
 - </body>
 - </html>
 
2、而HTML5就更简单省事了,像HTML4的输入格式“html:5”,更狠的是HTML5只需输入“!”,就可以生成HTML5文档的初始结构:
- <!doctype html>
 - <html lang="en">
 - <head>
 - <meta charset="UTF-8">
 - <title>Document</title>
 - </head>
 - <body>
 - </body>
 - </html>
 
3、父子关系:>,使用>操作符在内部相互嵌套的标签:
- div>ul>li
 
将生成:
- <div>
 - <ul>
 - <li></li>
 - </ul>
 - </div>
 
4、兄弟关系:+,使用+操作符将标签处于同一个层级:
- div+p+footer
 
将生成:
- <div></div>
 - <p></p>
 - <footer></footer>
 
5、生成兄弟关系时,像ul dl这样的列表标签,使用+操作符将生成一个标准的列表结构:
- ul+
 
将生成:
- <ul>
 - <li></li>
 - </ul>
 
- dl+
 
将生成:
- <dl>
 - <dt></dt>
 - <dd></dd>
 - </dl>
 
6、上级关系:^,使用^操作符使标签与前一标签的父级处于相同的级别:
- div+div>p>span+em^bq
 
将生成:
- <div>
 - <p><span></span><em></em></p>
 - <blockquote></blockquote>
 - </div>
 
7、使用两^操作符就与前一标签的爷爷级是相同级别,依此类推:
- div+div>p>span+em^^bq
 
将生成:
- <div></div>
 - <div>
 - <p><span></span><em></em></p>
 - </div>
 - <blockquote></blockquote>
 
8、乘法:*,使用*操作符可以输出多个标签:
- div>ul>li*5
 
将生成:
- <div>
 - <ul>
 - <li></li>
 - <li></li>
 - <li></li>
 - <li></li>
 - <li></li>
 - </ul>
 - </div>
 
9、分组:(),用()操作符进行分组,使编写的代码结构更加清晰、明了,一组标签就相当一个元素:
- 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>
 
10、你可以使用多个(),并使用乘法*操作符:
- (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>
 
11、CSS选择器,给标签指定id和class选择器,只需在标签的后面直接添加,但必需以.或#开头:
- 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>
 
Emmet默认的标签是div,所以我们在写带有CSS选择器的div标签时,可以省去div,你可以试试。
12、自定义属性:[](英文下的中括号),使用[]操作符给标签添加自定义属性:
- td[title="Hello world!" colspan=3]
 
将生成:
- <td title="Hello world!" colspan="3"></td>
 
13、可以把你喜欢的一些属性放在[]内,如果不指定属性值,代码将生成不带属性值的HTML默认标签:
- td[colspan title]
 
将生成:
- <td colspan="" title=""></td>
 
属性值必需使用单引号或双引号,不然就会出现你可能想到的效果。
14、项目编号:$,使用*可以重复的标签,$可以使标签生成有序列表,输出的值为数字:
- 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>
 
15、除了生成无序列表,其它的标签也是一样:
- h$[title=item$]{Header $}*3
 
将生成:
- <h1 title="item1">Header 1</h1>
 - <h2 title="item2">Header 2</h2>
 - <h3 title="item3">Header 3</h3>
 
16、你也可以使用多个$操作符用0(零)来分填充数字:
- 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>
 
更改列表的起始数字与顺序,看下面的代码就一目了然:
17、数字的倒序,只需在*前添加@-:
- ul>li.item$@-*5
 
将生成:
- <ul>
 - <li class="item5"></li>
 - <li class="item4"></li>
 - <li class="item3"></li>
 - <li class="item2"></li>
 - <li class="item1"></li>
 - </ul>
 
18、起始数字,在*前添加@起始数字:
- ul>li.item$@3*5
 
将生成:
- <ul>
 - <li class="item3"></li>
 - <li class="item4"></li>
 - <li class="item5"></li>
 - <li class="item6"></li>
 - <li class="item7"></li>
 - </ul>
 
而从起始数字为3的列表倒序,只需把上面的Emmet代码item后面的数字写成@-3*5。
19、文本:{},使用花括号来添加文本元素:
- a{Click me}
 
将生成:
- <a href="">Click me</a>
 
20、注意:当{}作为单独的一个操作符使用时,a{click}和a>{click}将生成相同的标签,但当使用了多个,或用了其它操作符时将会生成不同的标签:
- <!-- a{click}+b{here} -->
 - <a href="">click</a><b>here</b>
 - <!-- a>{click}+b{here} -->
 - <a href="">click<b>here</b></a>
 
21、当元素用+连接时,文本{}编写正确后,并不能改变标签的层级关系:
- p>{Click }+a{here}+{ to continue}
 
将生成:
- <p>Click <a href="">here</a> to continue</p>
 
对于一些特殊的标签类型,比如:a、img、link、input等带有属性值的标签,在编写Emmet插件时已经为我们编写好了基本的结构。
22、比如a标签,在编辑中输入a,即可解析成一个基本的a标签:
- <a href=""></a>
 
23、a标签有几个属性值,在编写Emmet代码时可以添加这些值来覆盖默认的属性值:
- a[href="http://salonglong.com" title="远方的雪山" class="logo"]{远方的雪山}
 
将生成:
- <a href="http://salonglong.com" title="远方的雪山" class="logo">远方的雪山</a>
 
因为属性值是不可以缩写的,所以看起来编写带属性值是相似的。
24、在许多情况下,你可以跳过输入标签名称和Emmet代码,得到HTML代码,例如下面的例子:
- <div>
 - .item
 - </div>
 - <span>.item</span>
 - <ul class="nav">
 - .item
 - </ul>
 
将生成:
- <div>
 - <div class="item"></div>
 - </div>
 - <span><span class="item"></span></span>
 - <ul class="nav">
 - <li class="item"></li>
 - </ul>
 
25、从上面的例子中我们可以看到,插件会根据id或class所在的父级标签生成相应的标签,这种写法也是遵循HTML的编写规则,通过下面的代码你会更明白:
- .wrap>.content div.wrap>div.content
 - em>.info em>span.info
 - ul>.item*3 ul>li.item*3
 - table>#row$*4>[colspan=2] table>tr#row$*4>td[colspan=2]
 
上面对应的四组代码最终生成的代码对应为:
- <div class="wrap">
 - <div class="content"></div>
 - </div>
 - <em><span class="info"></span></em>
 - <ul>
 - <li class="item"></li>
 - <li class="item"></li>
 - <li class="item"></li>
 - </ul>
 - <table>
 - <tr id="row1">
 - <td colspan="2"></td>
 - </tr>
 - <tr id="row2">
 - <td colspan="2"></td>
 - </tr>
 - <tr id="row3">
 - <td colspan="2"></td>
 - </tr>
 - <tr id="row4">
 - <td colspan="2"></td>
 - </tr>
 - </table>
 
我们应该了解到,CSS选择器在块级元素中默认的HTML标签为div,在内联级元素中为span,而对于HTML一些特殊的标签:ul li、table tr td,将会生成对应的内部标签。
这篇文章介绍了HTML的基本标签在Emmet下的写法,萨龙龙把它当做学习笔记,可以随时查看,如果对你有帮助就更好。
Emmet编写代码的格式最重要的就是不能有空格,如果有空格将不会完全解析和生成HTML代码。
Emmet快速编写HTML代码的更多相关文章
- Emmet 快速编写html代码
		
简介 快速编写HTML代码 语法简单,语法类似css选择器,30分钟内你就可以搞定它.开发商为sublime.atom.brackets.hbuilder.webstrom等编辑器或IDE提供对应的插 ...
 - VsCode中使用Emmet神器快速编写HTML代码
		
一.Emmet简述 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具. 在前端开发的过程中,一大部分的工作是写 HTML.CSS 代码.特别是手动编写 HTML ...
 - Emmet快速编写代码
		
Emmet快速编写代码 ★div → <div></div>, span → <span></span> ★CSS选择器  给标签指定id选择器 di ...
 - 使用Emmet 快速生成HTML代码
		
在前端开发的过程中,一个最繁琐的工作就是写 HTML.CSS 代码.数量繁多的标签.属性.尖括号.标签闭合等,让前端们甚是苦恼.于是,我向大家推荐 Emmet,它提供了一套非常简单的语法规则,书写起来 ...
 - Emmet快速编写CSS样式
		
基本的CSS样式编写时,很多样式只需输入首字母即可得到不带属性值的CSS样式,像上面说到的margin. 1.而对于一些带有特定的属性值的CSS样式,只需输入CSS标签与属性值的首字母就可以,比如: ...
 - 结合Zen Coding快速编写HTML代码(sublime text2篇)
		
首先说下,如何在sublime text2加上zen coding插件 按 Ctrl+`(就是~这个键) 复制下面的代码 确认 重新启动sublime text2 import urllib2,os; ...
 - Emmet:HTML/CSS代码快速编写神器
		
本文来源:http://www.iteye.com/news/27580 ,还可参考:http://www.w3cplus.com/tools/emmet-cheat-sheet.html Em ...
 - Emmet:HTML/CSS代码快速编写神器(转)
		
Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...
 - Sublime Text 3插件之Emmet:HTML/CSS代码快速编写神器
		
一.快速编写HTML代码 1. 初始化 HTML文档需要包含一些固定的标签,比如<html>.<head>.<body>等,现在你只需要1秒钟就可以输入这些标签. ...
 
随机推荐
- Ubuntu 下建立WiFi热点的方法
			
使用ap-hotspot来创建WIFI热点.终端里输入: $ sudo add-apt-repository ppa:nilarimogard/webupd8 $ sudo apt-get updat ...
 - UNIX网络编程读书笔记:select函数
			
select函数概况: select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它. 作为一个例子,我们可以调用select,告知内核仅在下 ...
 - windows 磁盘加密
			
windows 磁盘加密 CreateTime--2018年4月25日18:37:45 Author:Marydon 以win10为例 选中磁盘-->你会发现上面的管理BitLocker是置 ...
 - 〖Linux〗使用ssh登录远程主机,并在本地打开远程图形界面
			
1. 修改/etc/ssh/sshd_config文件,设置允许TCP转发和X11转发 AllowTcpForwarding yes X11Forwarding yes 2. 登录无图形远程主机,并允 ...
 - 【微信开发】JS和PHP分别判断当前浏览器是否微信浏览器
			
1.PHP端 //判断是否微信浏览器 -xzz1125 function is_weixin() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMes ...
 - 【CentOS6.5】安装之DNS配置错误,yum install 软件报错:ERROR 6或者56错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”
			
刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum grouplist | more. 提示如下错误信息: Loaded plugins: fastestmirror Set ...
 - phpstorm设置断点调试
			
环境是:wamp PHP Version: 5.5.12 网上的教程很多,我自己按照教程操作,实现了断点调试,下面是我设置断点调试的步骤 1.修改配置文件php.ini,按下面修改(位置在最后) ; ...
 - C#串口通信程序实现无感知签到与答题
			
最近公司项目上线,之前利用串口通讯实现校牌的无感知签到程序, 项目上线以后刚刚好有时间把之前的出现的问题做下记录,废话不多,直接到主题 串口介绍: 串行接口简称串口,也称串行通信接口或串行通讯接口(通 ...
 - 拒绝蛋疼,javascript调试技巧
			
chrome的调试技巧网上很多介绍了,这里提两个个人觉得比较有用的: 1.console.log 优点:可以输出json对象,而非字符串,这是 alert() 做不到的 缺点:记得要删除,否则在低版本 ...
 - HTML5 拖拽的简单实践
			
坑爹点记录: 1.一定要加入 event.preventDefault(); 不然无效. 2.想测试的话,随便找到一个layui的table演示页面,插入脚本即可.不过要先在全局插入jquery. v ...