生成 HTML 文档初始结构

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

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8">< title>Document</title>
</head>
<body></body>
</html>

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

<!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>

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

html:5 或者 ! 生成 HTML5 结构
html:xt 生成 HTML4 过渡型
html:4s 生成 HTML4 严格型
生成带有 id 、class 的 HTML 标签

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

#aaa Emmet 默认的标签为 div ,如果我们不给出标签名称的话,默认就生成 div 标签。如果编写一个 class 为 bbb 的 span 标签,我们需要编写下面指令: span.bbb 然后就生成了对应的结构。同理,如果想要编写一个 id 为 ccc 的 class 为 ddd 的 ul 标签,我们可以这样写: ul#ccc.ddd 很简单吧?比你用手写 id 、class 方便多了吧 生成后代:> 大于号表示后面要生成的内容是当前标签的后代。例如我要生成一个无序列表,而且被 class 为 aaa 的 div 包裹,那么可以使用下面指令: div.aaa>ul>li 可以生成如下的结构:

<div class="aaa"><ul><li></li></ul>
</div>

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

<div></div>
<p></p>
<blockquote></blockquote>

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

<div><ul><li></li></ul><span></span>
</div>

如果我想相对与 div 生成一个平级元素,那么就再上升一个层次,多用一个“^”符号: div>ul>li^^span 重复生成多份:* 特别是一个无序列表,ul 下面的 li 肯定不只是一份,通常要生成很多个 li 标签。那么我们可以直接在 li 后面 * 上一些数字: ul>li*5 这样就直接生成五个项目的无序列表了。如果想要生成多份其他结构,方法类似。 生成分组:() 用括号进行分组,这样可以更加明确要生成的结构,特别是层次关系,例如: 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>

生成自定义属性:[attr]

a 标签中往往需要附带 href 属性和 title 属性,如果我们想生成一个 href 为 “http://blog.wpjam.com” ,title 为“我爱水煮鱼”的 a 标签,可以这样写:

a[href=”http://blog.wpjam.com” title=”我爱水煮鱼”]
其他标签和属性都类似。

对生成内容编号:$

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

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>

就表示一位数字,只出现一个的话,就从1开始。如果出现多个,就从0开始。如果我想生成三位数的序号,那么要写三个 就表示一位数字,只出现一个的话,就从1开始。如果出现多个,就从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>

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

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>

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

ul>li.item$@3*5
这样就会从 3 开始排序,生成如下代码:

<ul><li class="item3"></li><li class="item4"></li><li class="item5"></li><li class="item6"></li><li class="item7"></li>
</ul>

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

ul>li.item$@-3*5
生成的就是以 3 为底倒序:

<ul><li class="item7"></li><li class="item6"></li><li class="item5"></li><li class="item4"></li><li class="item3"></li>
</ul>

生成文本内容:{}

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

a[href=”http://blog.wpjam.com”]{点击这里到 我爱水煮鱼}
这样就生成了一个到我爱水煮鱼的超链接了。在生成内容的时候,特别要注意前后的符号关系,虽然 a>{Click me} 和 a{Click me} 生成的结构是相同的,但是加上其他的内容就不一定了,例如:

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

这样就生成了完全不同的结构,注意这些小细节哦。

不要有空格

在写指令的时候,你可能为了代码的可读性,使用一些空格什么的排版一下。这就会导致代码无法使用。例如下面这句:

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

使用 Emmet 生成 HTML 的语法详解-转载相关推荐

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

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

  2. Java8初体验(二)Stream语法详解(转)

    本文转自http://ifeve.com/stream/ Java8初体验(二)Stream语法详解 感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 上篇文章Java8初体验( ...

  3. HBase数据结构与基本语法详解

    HBase数据结构与基本语法详解.背景: 阅读新闻 [日期:2019-01-06] 来源:Linux社区 作者:Linux [字体:大 中 小] HBase中的表一般有这样的特点: 1 大:一个表可以 ...

  4. Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了)---zhangkaitao

    Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了) http://jinnianshilongnian.iteye.com/blog/1415606    --zha ...

  5. Spring Data JPA 之 @Query 语法详解及其应用

    5 Spring Data JPA 之 @Query 语法详解及其应用 5.1 快速体验 @Query 的方法 沿⽤我们之前的例⼦,新增⼀个 @Query 的⽅法: // 通过 query 注解根据 ...

  6. php insert什么意思,PHP insert语法详解

    PHP insert语法详解 上次程序中有这么一句话: $exec="insert into info (ename,pcname) values ('".$_POST[" ...

  7. Android.mk语法详解

    前言 目前 Android 工程可以通过 .mk.或者 .cmake 的形式构建 NDK 工程,较新的 Android 工程一般采用的是 .cmake 构建 NDK 源码,而相对创建时间久的工程则大多 ...

  8. @Pointcut语法详解

    @Pointcut语法详解 目录 @Pointcut语法详解 定义 表达式标签 execution execution格式: 例子: AspectJ类型匹配的通配符: within和@within t ...

  9. ImageX 语法详解

    ImageX 语法详解 ImageX是微软开发的一款映像文件工具,其创建的Windows映像(.wim)文件格式已经成为新的标准.我们熟知的Vista这个庞然大物就是用它来封装的,.wim文件相比gh ...

最新文章

  1. 计算机辅助教育的可行性和存在的问题,论计算机辅助教学存在的问题及解决思路..docx...
  2. 表变量与临时表的优缺点?(ZT)
  3. C#读书笔记:线程,任务和同步
  4. 【TensorFlow-windows】学习笔记五——自编码器
  5. mysql 逻辑备份 物理备份_数据库的逻辑备份和物理备份--非RMAN
  6. 翻译:Docker方式安装redmine
  7. javascript鼠标拖拽的那些事情
  8. docker宿主机访问容器_干货来啦!带你初探Docker逃逸
  9. java 各组件单击总数_java 获取面板上有多少个组件
  10. Nodejs学习笔记(十二)--- 定时任务(node-schedule)
  11. 企业微信小程序可用存储空间不足_微信小程序为什么能帮助企业商家引流?
  12. excel2013超链接进不去,提示“您的组织策略不允许...”
  13. oracle系统优化
  14. ClickHouse 冷热分离存储在得物的实践
  15. 笔记本win10 睡眠时会自动唤醒?修复后唤醒缓慢也解决了
  16. ssrender例子
  17. html魔方转动效果,简单说 用CSS做一个魔方旋转的效果
  18. 常用正则 -- 正则表达式
  19. 计算机获取的系统时间是什么时间格式,【excle怎样获取当前日期格式】如何在EXCEL中显示当天的日期和时间?...
  20. 前后端上传到同一个Git仓库

热门文章

  1. JS控制方块自动移动
  2. 商超食品安全溯源系统设计与实现
  3. 【角蜂鸟学习笔记1】(在MacOS系统安装的艰难过程)
  4. UE4 材质学习 (05-实用工具节点的应用例子)
  5. 关于TLP521的使用
  6. 分治法-循环赛日程表
  7. Python借助keyboard监听键盘事件
  8. 2021年中国IDC市场最新排行榜
  9. 分类模型训练完成,却预测不准的原因
  10. android l moto x 1,第一代Moto X即将迎来Android 5.1更新