Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示:

安装:在SUBLIME的package contol---输入install package,然后输入emmet,进行安装即可。

Zen coding下的编码演示

去年年底,该插件已经改名为Emmet。但Emmet不只改名,还带来了一些新特性。本文就来直观地演示给你。

一、快速编写HTML代码

1. 初始化

HTML文档需要包含一些固定的标签,比如、

、等,现在你只需要1秒钟就可以输入这些标签。比如输入“!”或“html:5”,然后按Tab键:

• html:5 或!:用于HTML5文档类型

• html:xt:用于XHTML过渡文档类型

• html:4s:用于HTML4严格文档类型

2. 轻松添加类、id、文本和属性

连续输入元素名称和ID,Emmet会自动为你补全,比如输入p#foo:

连续输入类和id,比如p.bar#foo,会自动生成:

1.

下面来看看如何定义HTML元素的内容和属性。你可以通过输入h1{foo}和a[href=#],就可以自动生成如下代码:

1.

2.

3. 嵌套

现在你只需要1行代码就可以实现标签的嵌套。

• >:子元素符号,表示嵌套的元素

• +:同级标签符号

• ^:可以使该符号前的标签提升一行

效果如下图所示:

4. 分组

你可以通过嵌套和括号来快速生成一些代码块,比如输入(.foo>h1)+(.bar>h2),会自动生成如下代码:

1.

2.

3.

4.

5.

6.

5. 隐式标签

声明一个带类的标签,只需输入div.item,就会生成

在过去版本中,可以省略掉div,即输入.item即可生成

  • 中输入.item,就会生成
  • 下面是所有的隐式标签名称:

    • li:用于ul和ol中

    • tr:用于table、tbody、thead和tfoot中

    • td:用于tr中

    • option:用于select和optgroup中

    6. 定义多个元素

    要定义多个元素,可以使用*符号。比如,ul>li*3可以生成如下代码:

    7. 定义多个带属性的元素

    如果输入 ul>li.item$*3,将会生成如下代码:

    二、CSS缩写

    1. 值

    比如要定义元素的宽度,只需输入w100,即可生成

    除了px,也可以生成其他单位,比如输入h10p+m5e,结果如下:

    单位别名列表:

    • p 表示%

    • e 表示 em

    • x 表示 ex

    2. 附加属性

    可能你之前已经了解了一些缩写,比如 @f,可以生成:

    一些其他的属性,比如background-image、border-radius、font、@font-face,text-outline、text-shadow等额外的选项,可以通过“+”符号来生成,比如输入@f+,将生成:

    3. 模糊匹配

    如果有些缩写你拿不准,Emmet会根据你的输入内容匹配最接近的语法,比如输入ov:h、ov-h、ovh和oh,生成的代码是相同的:

    4. 供应商前缀

    如果输入非W3C标准的CSS属性,Emmet会自动加上供应商前缀,比如输入trs,则会生成:

    你也可以在任意属性前加上“-”符号,也可以为该属性加上前缀。比如输入-super-foo:

    如果不希望加上所有前缀,可以使用缩写来指定,比如-wm-trf表示只加上-webkit和-moz前缀:

    前缀缩写如下:

    • w 表示 -webkit-

    • m 表示 -moz-

    • s 表示 -ms-

    • o 表示 -o-

    5. 渐变

    输入lg(left, #fff 50%, #000),会生成如下代码:

    三、附加功能

    生成Lorem ipsum文本

    Lorem ipsum指一篇常用于排版设计领域的拉丁文文章,主要目的是测试文章或文字在不同字型、版型下看起来的效果。通过Emmet,你只需输入lorem 或 lipsum即可生成这些文字。还可以指定文字的个数,比如lorem10,将生成:

    引用

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero delectus.

    四、定制

    你还可以定制Emmet插件:

    • 添加新缩写或更新现有缩写,可修改snippets.json 文件

    • 更改Emmet过滤器和操作的行为,可修改preferences.json 文件

    • 定义如何生成HTML或XML代码,可修改syntaxProfiles.json 文件

    五、针对不同编辑器的插件

    Emmet支持的编辑器如下(链接为针对该编辑器的Emmet插件):

    • Sublime Text 2

    • TextMate 1.x

    • Eclipse/Aptana

    • Coda 1.6 and 2.x

    • Espresso

    • Chocolat (通过“Install Mixin”对话框添加)

    • Komodo Edit/IDE (通过Tools → Add-ons菜单添加)

    • Notepad++

    • PSPad

    • CodeMirror2/3

    • Brackets

    相关文档:http://docs.emmet.io/ (其中包含了一个Demo,你可以试验文中所提到的这些缩写)

    我简单的介绍了一下 Emmet ,并且用了一句指令迅速生成了一大片 HTML 代码。本文,就会介绍 Emmet 的 HTML语法,看完之后,你就会看懂并且写出那句代码了。

    现在,打开你的 ST2 然后新建一个 HTML 文档,跟着文章,即时输入对应的指令然后亲自尝试一下!

    生成 HTML 文档初始结构

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

    Document

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

    Document

    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+p+bq

    就可以生成如下的 HTML 结构:

    生成上级元素:^

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

    div>ul>li^span

    就会生成如下结构:

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

    div>ul>li^^span

    重复生成多份:*

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

    ul>li*5

    这样就直接生成五个项目的无序列表了。如果想要生成多份其他结构,方法类似。

    生成分组:()

    用括号进行分组,这样可以更加明确要生成的结构,特别是层次关系,例如:

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

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

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

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

    生成结构:

    生成自定义属性:[attr]

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

    a[href="http://www.qianxingzhem.com " ]

    其他标签和属性都类似。

    对生成内容编号:$

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

    ul>li.item$*5

    这样就生成了如下结构:

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

    ul>li.item$$$*5

    输出:

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

    ul>li.item$@-*5

    生成如下结构:

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

    ul>li.item$@3*5

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

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

    ul>li.item$@-3*5

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

    生成文本内容:{}

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

    a[href="http://www.qianxingzhem.com "]{点击这里到潜行者m 的博客}

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

    clickhere

    clickhere

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

    不要有空格

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

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

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

notepad++ json插件_Emmet--Web前端工具,需要安装插件在sublime里相关推荐

  1. [Web前端工具篇]Sublime 3安装Markdown插件

    1.简介 今天这边文章主要还是写如何离线安装Markdown插件 2.安装流程 2.1 下载官方软件 Sublime Text 3 官网 2.2 PackageControl 插件的安装 Packag ...

  2. Html一修改就会自动刷新,web 前端修改 自动刷新 插件使用 liveReload

    浏览器 Firefox,插件 liveReload: 1.打开 Firefox 浏览器, 2.选择附加组件,然后查看更多附加组件: 3.搜索 liveReload : 4.添加组件到Firefox 重 ...

  3. rails网站开发所使用的插件收集---web开发工具集

    jquery http://malsup.com/jquery/cycle/ http://www.serie3.info/s3slider/demonstration.html http://tym ...

  4. cropper.js 图像旋转问题_JavaScript开源良心插件,纯前端网页图片剪裁插件——cropperjs...

    介绍 cropperjs是一款基于JavaScript的网页端图片裁剪插件,可能相对于图片预览来说,图片的裁剪使用场景貌似并不是很多,但是图片预览插件又要比裁剪插件容易找到,而且从实现难度上来说也不及 ...

  5. android插件化-获取apkplug框架已安装插件-03

    上一篇文章成功的将apkplug框架嵌入了应用中而且启动 链接http://www.apkplug.com/blog/?post=10 这一篇文章实现怎样获取全部已安装插件 一 获取框架的System ...

  6. flstudio插件找不到_FLstudio如何安装插件?

    VST和VST(i)插2113件都是扩展名为.dll的动态5261链接库文件,FLStudio通过调用这些动态链接库文件来4102运行1653这些插件.所以安装这些插件并不困难,只需让FLStudio ...

  7. web前端工具(配色图片图标)

    配色工具: https://kuler.adobe.com/zh/explore/newest/ http://slayeroffice.com/tools/color_palette/ 在线取色: ...

  8. html5 json转字符串,web前端-js小记(5)-字符串及json

    0. 对于 HTTP 协议而言,HTML.CSS.JS.JSON 的本质都是什么? 对于HTTP协议而言,html.css.js.json是符合相应语法的字符串. 用户访问页面时,浏览器根据用户的请求 ...

  9. web前端之JavaScript的插件下载指令及介绍、npm、install、save、require

    目录 1.扁平结构数据与树形结构数据之间的转换 2.防抖与节流 3.浮点数的加减乘除 4.检测输入的数据格式和类型是否正确,是否存在空数组或空对象 5.重名自增 6.根据后缀名渲染对应图标 1.扁平结 ...

  10. puppet的web管理工具foreman安装配置简明步骤

    foreman概述 Foreman是一个集成的数据中心生命周期管理工具,提供了服务开通,配置管理以及报告 功能,和Puppet Dahboard一样,Foreman也是一个Ruby on Rails程 ...

最新文章

  1. mysql多条件查询_使用dsum轻松搞定多条件查询,学会它,再也想用sumifs了
  2. FlashFXP客户端 FTP连接,连接很慢的情况,
  3. BAT Android面试专题深入探究:四大组件+ViewPager+组件化架构+Bitmap
  4. sql 删除字段中下划线_SQL基础教程知识点总结
  5. 把执行结果转成json对象报错_给Hangfire的webjob增加callback和动态判断返回结果功能设计...
  6. Kubernetes 使用 Ingress-nginx 实现灰度发布功能
  7. 评分卡模型开发(四)--定量指标筛选
  8. mysql 时间戳 bigint_MySQL时间类型datetime、bigint及timestamp的查询效率
  9. numpy和pandas官方文档中文版分享
  10. Matlab中MatPower模块的安装流程
  11. 汽车销售管理系统 c语言版 课程设计,《汽车销售管理系统 C语言版》.doc
  12. 【MSFconsole进阶】auxiliary模块:信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等
  13. matlab实训心得,沟通实训心得体会
  14. 2021牛客多校10 F Train Wreck(搜索,优先队列)
  15. Server2008如何卸载MySQL_「完美卸载」完美卸载SQL Server 2008 R2 的方法,适合所有问题 - seo实验室...
  16. 唐山师范学院计算机论文,唐山师范学院
  17. linux cp并打包目录,【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】...
  18. 第五章——树(数据结构)
  19. python画三维坐标图像_由RGB-D图像获取三维坐标(相机坐标) Python
  20. 国内手机银行安全体检:多款存在高危漏洞,可影响资金安全

热门文章

  1. Web安全实践(6)web应用剖析之信息提炼
  2. AJAX验证jsp页面验证码
  3. 洛谷 P3378 【模板】堆
  4. 给RabbitMQ发送消息时,设置请求头Header。
  5. css样式的百分比都相对于谁?
  6. Appium+Python API相关知识了解
  7. Oracle数据库分页查询的几种实现方法
  8. Eclipse 调试器
  9. C++串行编程步骤介绍
  10. MyCat分布式数据库集群架构工作笔记0002---数据库中间件对比