Emmet之html语法
一、简写语法
Emmet 用和 CSS 选择器相似的语法来描述元素的嵌套层级关系和属性,实现 HTML/XML/CSS 等代码的智能自动补全。
其通过文件名后缀识别文件类型,从而使用对应的自动补全语法。默认自动补全快捷键为制表符(Tab)。
下文中的“自动补全”均指“按下快捷键后自动补全”。
注意:Emmet 语法中的空格表示结束解析,所以书写语句中不能出现空格。
1、元素
在编辑器中输入元素名称,即可自动补全生成 HTML 标签,即使不是标准的 HTML 标签。
// before
div
foo // after
<div></div>
<foo></foo>
输入 !
或者 html:5
可以自动补全为 HTML5 基本结构。想要输出 HTML4 文本类型申明可以输入 html:4s
或者 html:4t
。
// before
! (或html:5) // after
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body> </body>
</html>
2、嵌套操作
1)child:使用 “>” 生成子元素
// before
div>ul>li // after
<div>
<ul>
<li></li>
</ul>
</div>
2) Sibling: 使用符号 “+” 生成兄弟元素
// before
div+p+bq // after
<div></div>
<p></p>
<blockquote></blockquote>
3) Climb-up:使用 “^” 生成父元素,与 “>” 相反
// before
div+div>p>span+em^bq // after
<div></div>
<div>
<p><span></span><em></em></p>
<blockquote></blockquote>
</div>
你甚至可以使用多个 “^”。
// before
div+div>p>span+em^^^bq
// after
<div></div>
<div>
<p><span></span><em></em></p>
</div>
<blockquote></blockquote>
4) Multiplication:使用 “*” 操作符生成多个元素
// before
div>ul>li*5 // after
<div>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
5) Grouping:使用 “()” 操作符将元素分组,实现更复杂的简写任务
// before
// "+" 后面的元素与括号中的第一个元素属于兄弟关系
div>(header>ul>li*2)+footer>p //after
<div>
<header>
<ul>
<li></li>
<li></li>
</ul>
</header>
<footer>
<p></p>
</footer>
</div>
3. 属性操作
在简写时就可以为元素设置属性。
1) id 与 class
简写时,元素与 id 属性值之间用 “#” 分隔,与 class 属性值之间用 “.” 分隔。
// before
div#header+div.page+div#footer.class1.class2.class3 // after
<div id="header"></div>
<div class="page"></div>
<div id="footer" class="class1 class2 class3"></div>
2) 其他属性
使用 [attr] 标记添加其他属性。
// before
td[title='hello' colspan=3] // after
<td title="hello" colspan="3"></td>
注意:
- 方括号中可添加任意数量的属性
不给定属性值,则属性值为""。td[colspan title]将得到 <td colspan="" title=""></td>
- 属性值可用单引号或双引号,输出统一为双引号
- 如果属性值中没有空格,则引号可省略
3) 为条目编号
使用 “*” 符号生成的多个元素,可用 “$” 操作符实现从1到 N 自动编号。
// before
li.item$*3 // after
<li class="item1"></li>
<li class="item2"></li>
<li class="item3"></li>
可在 “$” 后添加 “@n” 修改编号的起始值为n。
// before
li.item$@3*3 // after
<li class="item3"></li>
<li class="item4"></li>
<li class="item5"></li>
可在 “$” 后添加 “@-” 修改编号的方向。
// before
li.item$@-3*3 // after
<li class="item5"></li>
<li class="item4"></li>
<li class="item3"></li>
4. 添加文本
使用花括号 “{}” 操作符为元素添加文本节点。
// before
a[href=me.htm]{click me} // after
<a href="me.htm">click me</a>
因为文本也是节点,所以 a[href=me.htm]{click me} 与 a[href=me.htm]>{click me} 等价。
但有多个元素时则要注意。
// before
a[href=me.htm]{click me}+p{ok}
a[href=me.htm]>{click me}+p{ok} // after
<a href="me.htm">click me</a>
<p>ok</p> <a href="me.htm">click me
<p>ok</p>
</a>
Emmet 的简写方式在 snippets.json 中定义,更多使用方式可通过查看该文件了解。
对于 visual studio code 编辑器来说,该文件路径为: [安装根目录]\Microsoft VS Code\resources\app\node_modules\emmet\lib\snippets.json
参考:Emmet官方文档
Emmet之html语法的更多相关文章
- Emmet(Zen Coding)语法规则简介
———Emmet(Zen Coding)语法规则简介——— [Zen Coding可谓快速开发HTML和CSS的利器,主要采用仿css类选择器方式编写代码,以下是该利器的基本语法规则和代码示例] 基础 ...
- Emmet的HTML语法(敲代码的快捷方式)
Emmet的HTML语法(敲代码的快捷方式) 版权声明:本文为网上转载. 所有操作按下“tab”键即可瞬间完成 元素 1.在编辑器中输入元素名称,即可自动补全生成 HTML 标签,即使不是标准 ...
- [转载]Emmet (ZenCoding) 缩写语法
Emmet 使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性. 元素 可以使用元素名(如 div 或者 p)来生成 HTML 标签.Emmet 没有预定义的有效元素名的集合,可以 ...
- “一键”生成HTML——Emmet插件常用语法
Emmet是一款文本编辑器/IDE的插件,用来快速生成复杂的HTML代码,只要掌握一些常用的语法(类似于CSS选择器),就可以减少重复编码的工作(主要是懒).我个人惯用的是sublime,因此下文介绍 ...
- Emmet 生成 HTML 的语法
Emmet 使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性. 元素 可以使用元素名(如 div 或者 p)来生成 HTML 标签.Emmet 没有预定义的有效元素名的集合,可以 ...
- Emmet 语法大全(缩写语法/sublime 插件)
Emmet 使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性. 元素 可以使用元素名(如 div 或者 p)来生成 HTML 标签.Emmet 没有预定义的有效元素名的集合,可以 ...
- Emmet 语法探析
Emmet 语法探析 Emmet(Zen Coding)是一个能大幅度提高前端开发效率的一个工具. 大多数编辑器都支持Snippet,即存储和重用一些代码块.但是前提是:你必须先定义 这些代码块. E ...
- 转:Emmet 学习之路 - 2 基本语法
http://blog.csdn.net/jizhongchun/article/details/8472755 导读:Emmet的基本语法.学习步骤是:1 基本语法: 2 html命令: 3 css ...
- Emmet缩写语法
缩写语法 Emmet 使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性. 元素 可以使用元素名(如 div 或者 p)来生成 HTML 标签.Emmet 没有预定义的有效元素名的 ...
随机推荐
- Dynamics CRM 检测访问CRM延迟及带宽的工具
直接在浏览器中访问如下地址"http://CRMHOST/organization/tools/diagnostics/diag.aspx"(这里的CRMHOST和organiza ...
- Objc中为何某些类的属性要设置为copy而不是strong?
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 不知道大家是否注意,我们再使用一些第三方类的时候大多数情况下对 ...
- 08 ListView 优化
ListVie的优化 1 固定ListView长宽高 如下图在清单文件中: <ListView android:id="@+id/lv" android:layout_wid ...
- iOS下WebRTC音视频通话(二)-局域网内音视频通话
这里是iOS 下WebRTC音视频通话开发的第二篇,在这一篇会利用一个局域网内音视频通话的例子介绍WebRTC中常用的API. 如果你下载并编译完成之后,会看到一个iOS 版的WebRTC Demo. ...
- UNIX网络编程——TCP输出,UDP输出
TCP输出 每一个TCP套接字有一个发送缓冲区,我们可以使用SO_SNDBUF套接字选项来更改该缓冲区的大小.当某个应用进程调用write时,内核从该应用进程的缓冲区中复制所有数据到(或是应用程序的缓 ...
- Rational Rose正逆向工程(类图转Java代码,Java代码转类图)
一,正向工程 1.设置默认语言为Java,Tools->Options->Notation->default:选择Java. 2.设置环境变量Class ...
- 数据拟合:多项式拟合polynomial curve fitting
http://blog.csdn.net/pipisorry/article/details/49804441 常见的曲线拟合方法 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小 3 ...
- OC语言(七)Block复习
看下面一道Block的面试题: int i = 10; void(^myBlock)() = ^{ NSLog(@"%d",i); }; i = 100; myBlock(); 经 ...
- 异常驱动的开发(Exception-Driven Development)
你的网站或应用程序存在哪些问题?如果你在等着用户来告诉你,那么你只能看到所有的问题中已经暴露的那极小的一部分.要知道,那只是"冰山一角"! 而且,如果你真的是在守株待兔,我不得不很 ...
- Linux 学习笔记_12_文件共享服务_4_SSH
SSH文件共享服务 一.ssh远程登录[一般的Linux系统都会默认安装并启用] 1.Linux上远程命令行登录:ssh 用户名@远程主机IP地址 常用选项: -2:表示SSH2,强制使用第二代SSH ...