Emmet 简写语法

同样适用于phpStorm等JetBrains的序列产品

一、生成 HTML 文档初始结构

HTML 文档的初始结构,就是包括 doctype、html、head、body 以及 meta 等内容。你只需要输入一个 “!” 就可以生成一个 HTML5 的标准文档初始结构,你没有看错,输入一个感叹号(当然是英文符号),然后摁下 ctrl+E 键,就会发现生成了下面的结构:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title>
</head>
<body></body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这就是一个 HTML5 的标准结构,也是默认的 HTML 结构。如果你想生成 HTML4 的过渡型结构,那么输入指令 html:xt然后ctrl+E, 即可生成如下结构:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Document</title>
</head>
<body></body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Emmet 会自动把 doctype 给你补全了,怎么样,这样的功能会不会让你动心?简单总结一下常用的 HTML 结构指令:

html:5 或者!生成 HTML5 结构

html:xt 生成 HTML4 过渡型

html:4s 生成 HTML4 严格型

二、生成带有 id 、class 的 HTML 标签

Emmet 的语法有点类似 CSS 的语法,生成 id 为 aaa 的 div 标签,我们只需要编写下面指令:

#aaa
  • 1

Emmet 默认的标签为 `div` ,如果我们不给出标签名称的话,默认就生成 div 标签。如果编写一个 class 为 bbb 的 span 标签,我们需要编写下面指令:

span.bbb
  • 1

然后就生成了对应的结构。同理,如果想要编写一个 id 为 ccc 的 class 为 ddd 的 ul 标签,我们可以这样写:

ul#ccc.ddd
  • 1

很简单吧?比你用手写 id 、class 方便多了吧

三、生成后代:>

大于号表示后面要生成的内容是当前标签的后代。例如我要生成一个无序列表,而且被 class 为 aaa 的 div 包裹,那么可以使用下面指令:

div.aaa>ul>li
  • 1

可以生成如下的结构:

<div><ul><li></li></ul>
</div>
  • 1
  • 2
  • 3
  • 4
  • 5

四、生成兄弟:+

上面是生成下级元素,如果想要生成平级的元素,就需要使用 + 号。例如下面指令: 
div+p+bq 
就可以生成如下的 HTML 结构:

<div></div>
<p></p>
<blockquote></blockquote>
  • 1
  • 2
  • 3

##**五、生成上级元素:^** 上级 (Climb-up)元素是什么意思呢?前面咱们说过了生成下级元素的符号“>”,当使用 div>ul>li 的指令之后,再继续写下去,那么后续内容都是在 li 下级的。如果我想编写一个跟 ul 平级的 span 标签,那么我需要先用 “^” 提升一下层次。例如:

div>ul>li^span
  • 1

就会生成如下结构:

<div><ul><li></li></ul><span></span>
</div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果我想相对与 div 生成一个平级元素,那么就再上升一个层次,多用一个“^”符号:

div>ul>li^^span
  • 1

六、重复生成多份:

特别是一个无序列表,ul 下面的 li 肯定不只是一份,通常要生成很多个 li 标签。那么我们可以直接在 li 后面 * 上一些数字:

ul>li*5
  • 1

这样就直接生成五个项目的无序列表了。如果想要生成多份其他结构,方法类似。 ##**七、生成分组:()** 用括号进行分组,这样可以更加明确要生成的结构,特别是层次关系,例如:

div>(header>ul>li*2>a)+footer>p
  • 1

这样很明显就可以看出层次关系和并列关系,生成如下结构:

<div><header><ul><li><a href=""></a></li><li><a href=""></a></li></ul></header><footer><p></p></footer>
</div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

##**八、此外,分组还可以很方便的结合上面说的 “*” 符号生成重复结构:**

(div>dl>(dt+dd)*3)+footer>p
  • 1

生成结构:

<div><dl><dt></dt><dd></dd><dt></dt><dd></dd><dt></dt><dd></dd></dl>
</div>
<footer><p></p>
</footer>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

九、生成自定义属性:[attr]

a 标签中往往需要附带 href 属性和 title 属性,如果我们想生成一个 href 为 “http://www.haorooms.com/ ,title 为“haorooms 博客”的 a 标签,可以这样写:

a[href="http://www.haorooms.com/" title="haorooms 博客"]
  • 1

其他标签和属性都类似。

十、对生成内容编号:$

例如无序列表,我想为五个个 li 增加一个 class 属性值 item1 ,然后依次递增从 1-5,那么就需要使用 $ 符号:

ul>li.item$*5
  • 1

这样就生成了如下结构:

<ul><li class="item1"></li><li class="item2"></li><li class="item3"></li><li class="item4"></li><li class="item5"></li>
</ul>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

$就表示一位数字,只出现一个的话,就从1开始。如果出现多个,就从0开始。如果我想生成三位数的序号,那么要写三个 $:

ul>li.item$$$*5
  • 1

输出:

<ul><li class="item001"></li><li class="item002"></li><li class="item003"></li><li class="item004"></li><li class="item005"></li>
</ul>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

只能这样单调的生成序号?对于强大的 Emmet 来说,肯定不会会了,我们也可以在$ 后面增加 @-来实现倒序排列:

ul>li.item$@-*5
  • 1

生成如下结构:

<ul><li class="item5"></li><li class="item4"></li><li class="item3"></li><li class="item2"></li><li class="item1"></li>
</ul>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

同样,我们也可以使用 @N 指定开始的序号:

ul>li.item$@3*5
  • 1

这样就会从 3 开始排序,生成如下代码:

<ul><li class="item3"></li><li class="item4"></li><li class="item5"></li><li class="item6"></li><li class="item7"></li>
</ul>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

配合上面倒序输出,可以这样写:

ul>li.item$@-3*5
  • 1

生成的就是以 3 为底倒序:

<ul><li class="item7"></li><li class="item6"></li><li class="item5"></li><li class="item4"></li><li class="item3"></li>
</ul>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

十一、生成文本内容:{}

上面讲解了如何生成 HTML 标签,那里面的内容呢?当然也可以生成了:

a[href=”http://www.haorooms.com/”]{点击这里到 haorooms 的博客}
  • 1

这样就生成了一个到我博客的超链接了。在生成内容的时候,特别要注意前后的符号关系,虽然 a>{Click me} 和 a{Click me} 生成的结构是相同的,但是加上其他的内容就不一定了,例如:

<!-- a{click}+b{here} -->
<a href="">click</a><b>here</b>
  • 1
  • 2
<!-- a>{click}+b{here} -->
<a href="">click<b>here</b></a>
  • 1
  • 2

这样就生成了完全不同的结构,注意这些小细节哦。 
不要有空格 
在写指令的时候,你可能为了代码的可读性,使用一些空格什么的排版一下。这就会导致代码无法使用。例如下面这句:

(header > ul.nav > li*5) + footer
  • 1

而去掉空格之后,就可以正常执行生成结构了。

Emmet 简写语法相关推荐

  1. 一篇文章搞懂【Emmet】语法规则(前端必备技能)

    前端人员编写网页代码时可以依靠一些编辑器的语法提示加快编写速度.大多数编辑器也提供emmet插件来更快的编写HTML和css代码.emmet的语法规则比较简单易理解可以极大的提高编码速度,基本上是前端 ...

  2. Emmet常用语法总结

    Emmet简介 Emmet它是一组专门用来提高编写 HTML 和 CSS 代码速度的便利工具.将它整合进文本编辑器,可以提供一些功能和快捷方式,加快开发速度.在Emmet中包括HTML语法和CSS语法 ...

  3. Emmet基本语法与使用

    基本语法 官方的API文档 https://docs.emmet.io/abbreviations/syntax/ 1.后代:> 缩写:nav>ul>li <nav>&l ...

  4. [转]Emmet 生成 HTML 的语法

    在上篇文章前端开发神器 Emmet 介绍中,我简单的介绍了一下 Emmet ,并且用了一句指令迅速生成了一大片 HTML 代码.本文,就会介绍 Emmet 的 HTML 语法,看完之后,你就会看懂并且 ...

  5. Emmet语法及使用介绍

    Emmet语法及使用介绍 什么是Emmet? Emmet 是一个支持大多数流行文本编辑器的极大改善 html 和 css 的工作流的一个插件. 在输入emmet表达式时会出现提示和预览效果,在出现提示 ...

  6. 使用 Emmet 生成 HTML 的语法详解

    生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 doctype.html.head.body 以及 meta 等内容.你只需要输入一个 "!" 就可以生成一个 H ...

  7. 使用 Emmet 生成 HTML 的语法详解-转载

    生成 HTML 文档初始结构 HTML 文档的初始结构,就是包括 doctype.html.head.body 以及 meta 等内容.你只需要输入一个 "!" 就可以生成一个 H ...

  8. sublime Emmet的用法及相关语法

    http://www.haorooms.com/post/emmet_s 上一节,我们讲了 前端神器-sublime text3插件安装及使用,讲了Emmet插件. 本节来讲一下Emmet插件的用法及 ...

  9. Emmet Cheat Sheet(Sublime编辑)

    快捷创建html标签 官网的Emmet Cheat Sheet :http://docs.emmet.io/cheat-sheet/ https://files.cnblogs.com/files/t ...

  10. 【Emmet 的使用手册(知识点超全版本)】

    Emmet 使用手册目录 Emmet 简介 1. Emmet 生成 HTML 的缩写语法 1.1 HTML 文档类型和结构初始化 1.2 注释 1.3 HTML 标签 1.4 嵌套 ⑴ 后代-下一级 ...

最新文章

  1. skiplist 跳表(1)
  2. 计算机科学和Python编程导论(三) 一些简单的数值程序
  3. 可以永久改变你的编程技巧的40个Tips
  4. shell 实现ip字符串与整形互转
  5. python list()函数 (从可迭代对象返回初始化的新列表)
  6. 开源免费的.NET图像即时处理的组件ImageProcessor
  7. websockets_使用Java WebSockets,JSR 356和JSON映射到POJO的
  8. poj 1252 Euro Efficiency (01背包变形)
  9. 【CSP201312-4】有趣的数(数位DP)
  10. Windows核心编程_修改开机密码
  11. svn 回退到指定版本无法提交_SVN终端演练-版本回退
  12. matlab流体力学分析,matlab流体力学
  13. 求职时,怎样判断一家公司是否靠谱?
  14. 【高等数学】第一章 函数与极限——第六节 极限存在准则 两个重要极限
  15. Windows Server 2008 WIA服务需要安装“桌面体验”
  16. Hive考试练习题前75分答案
  17. 传统企业转战电商必看(独家视角)
  18. 关于法向加速度(向心加速度)中的“法“
  19. ARP攻击与ARP欺骗
  20. Ajax、JSON数据和文件上传与下载

热门文章

  1. 通过 微软 pai-fs 上传数据到HDFS (Microsoft OpenPAI)
  2. 关于java第八章的想法
  3. litepal更好的操作sqlite3,配置与基本操作
  4. Eclipse: the import java.util cannot be resolved
  5. hdu5800_dp
  6. C#远程连接Oracle数据库(不安装客户端)
  7. IO编程——转自廖雪峰博客
  8. 诹图系列(2): 堆积条形图
  9. 网页f12查看服务器,网页中审查元素(按F12)与查看网页源代码的区别
  10. [Python 应用:爬虫] Selenium 之 XPath 语法