Emmet:大幅度提高前端开发效率的工具

文章简介:Emmet把片段这个概念提高到了一个新的层次:你可以设置CSS形式的能够动态被解析的表达式,然后根据你所输入的缩写来得到相应的内容。Emmet是很成熟的并且非常适用于编写HTML/XML 和 CSS 代码的前端开发人员,但也可以用于编程语言。

介绍

Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具:

基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们称之为“片段”。虽然片段能很好地推动你得生产力,但大多数的实现都有这样一个缺点:你必须先定义你得代码片段,并且不能再运行时进行拓展。

Emmet把片段这个概念提高到了一个新的层次:你可以设置CSS形式的能够动态被解析的表达式,然后根据你所输入的缩写来得到相应的内容。Emmet是很成熟的并且非常适用于编写HTML/XML 和 CSS 代码的前端开发人员,但也可以用于编程语言。

使用示例:

在编辑器中输入缩写代码:ul>li*5 ,然后按下拓展键(默认为tab),即可得到代码片段:

<ul>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		</ul>
	

下载和安装

  1. Emmet为大部分流行的编辑器都提供了安装插件,下面是它们的下载链接:

    • Sublime Text
    • Eclipse/Aptana
    • TextMate
    • Coda
    • Espresso
    • Chocolat
    • Komodo Edit
    • Notepad++
    • PSPad
    • textarea
    • CodeMirror
    • Brackets
    • NetBeans
    • Adobe Dreamweaver
  2. 在线编辑器的支持:
    • JSFiddle
    • JS Bin
    • CodePen
    • ICEcoder
    • Divshot
    • Codio
  3. 第三方插件的支持

    下面这些编辑器的插件都是由第三方开发者所提供的,所以可能并不支持所有Emmet的功能和特性。

    • SynWrite
    • WebStorm
    • PhpStorm
    • Vim
    • HTML-Kit
    • HippoEDIT
    • CodeLobster PHP Edition
    • TinyMCE

因为我也是Sublime Text的使用者,所以下面为大家介绍一下sublime text中Emmet的安装方法:

步骤一:首先你需要为sublime text安装Package Control组件:

  1. 按Ctrl+`调出sublime text的console
  2. 粘贴以下代码到底部命令行并回车: import urllib2,os;pf="Package Control.sublime-package";ipp=sublime.installedpackagespath();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),"wb").write(urllib2.urlopen("http://sublime.wbond.net/"+pf.replace(" ","%20")).read())
  3. 重启Sublime Text
  4. 在Perferences->package settings中看到package control,则表示安装成功

步骤二:使用Package Control安装Emmet插件:

  1. 按Ctrl+Shift+P命令板
  2. 输入install然后选择install Package,然后输入emmet找到 Emmet Css Snippets,点击就可以自动完成安装。

使用方法

emmet的使用方法也非常简单,以sublime text为例,直接在编辑器中输入HTML或CSS的代码的缩写,然后按tab键就可以拓展为完整的代码片段。(如果与已有的快捷键有冲突的话,可以自行在编辑器中将拓展键设为其他快捷键)

语法:

后代:>

缩写:nav>ul>li

<nav>
		<ul>
		<li></li>
		</ul>
		</nav>
	

兄弟:+

缩写:div+p+bq

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

上级:^

缩写:div+div>p>span+em^bq

<div></div>
		<div>
		<p><span></span><em></em></p>
		<blockquote></blockquote>
		</div>
	

缩写:div+div>p>span+em^^bq

<div></div>
		<div>
		<p><span></span><em></em></p>
		</div>
		<blockquote></blockquote>
	

分组:()

缩写: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>
	

乘法:*

缩写:ul>li*5

<ul>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		<li></li>
		</ul>
	

自增符号:$

缩写: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>
	

缩写:h$[title=item$]{Header $}*3

<h1
			title="item1">Header 1</h1>
		<h2
			title="item2">Header 2</h2>
		<h3
			title="item3">Header 3</h3>
	

缩写: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>
	

缩写: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>
	

缩写: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>
	

ID和类属性

缩写:#header

<div
			id="header"></div>
	

缩写:.title

<div
			class="title"></div>
	

缩写:form#search.wide

<form
			id="search"
			class="wide"></form>
	

缩写:p.class1.class2.class3

<p
			class="class1 class2 class3"></p>
	

自定义属性

缩写:p[title="Hello world"]

<p
			title="Hello world"></p>
	

缩写:td[rowspan=2 colspan=3 title]

<td
			rowspan="2"
			colspan="3"
			title=""></td>
	

缩写:[a="value1" b="value2"]

<div
			a="value1"
			b="value2"></div>
	

文本:{}

缩写:a{Click me}

<a
			href="">Click me</a>
	

缩写:p>{Click }+a{here}+{ to continue}

<p>Click <a
			href="">here</a> to continue</p>
	

隐式标签

缩写:.class

<div
			class="class"></div>
	

缩写:em>.class

<em><span
			class="class"></span></em>
	

缩写:ul>.class

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

缩写:table>.row>.col

<table>
		<tr
			class="row">
		<td
			class="col"></td>
		</tr>
		</table>
	

HTML

所有未知的缩写都会转换成标签,例如,foo → <foo></foo>

缩写:!

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

缩写:a

<a
			href=""></a>
	

缩写:a:link

<a
			href="http://"></a>
	

缩写:a:mail

<a
			href="mailto:"></a>
	

缩写:abbr

<abbr
			title=""></abbr>
	

缩写:acronym

<acronym
			title=""></acronym>
	

缩写:base

<base
			href="" />
	

缩写:basefont

<basefont />
	

缩写:br

<br />
	

缩写:frame

<frame />
	

缩写:hr

<hr />
	

缩写:bdo

<bdo
			dir=""></bdo>
	

缩写:bdo:r

<bdo
			dir="rtl"></bdo>
	

缩写:bdo:l

<bdo
			dir="ltr"></bdo>
	

缩写:col

<col />
	

缩写:link

<link
			rel="stylesheet"
			href="" />
	

缩写:link:css

<link
			rel="stylesheet"
			href="style.css" />
	

缩写:link:print

<link
			rel="stylesheet"
			href="print.css"
			media="print" />
	

缩写:link:favicon

<link
			rel="shortcut icon"
			type="image/x-icon"
			href="favicon.ico" />
	

缩写:link:touch

<link
			rel="apple-touch-icon"
			href="favicon.png" />
	

缩写:link:rss

<link
			rel="alternate"
			type="application/rss+xml"
			title="RSS"
			href="rss.xml" />
	

缩写:link:atom

<link
			rel="alternate"
			type="application/atom+xml"
			title="Atom"
			href="atom.xml" />
	

缩写:meta

<meta />
	

缩写:meta:utf

<meta
			http-equiv="Content-Type"
			content="text/html;charset=UTF-8" />
	

缩写:meta:win

<meta
			http-equiv="Content-Type"
			content="text/html;charset=windows-1251" />
	

缩写:meta:vp

<meta
			name="viewport"
			content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
	

缩写:meta:compat

<meta
			http-equiv="X-UA-Compatible"
			content="IE=7" />
	

缩写:style

<style></style>
	

缩写:script

<script></script>
	

缩写:script:src

<script
			src=""></script>
	

缩写:img

<img
			src=""
			alt="" />
	

缩写:iframe

<iframe
			src=""
			frameborder="0"></iframe>
	

缩写:embed

<embed
			src=""
			type="" />
	

缩写:object

<object
			data=""
			type=""></object>
	

缩写:param

<param
			name=""
			value="" />
	

缩写:map

<map
			name=""></map>
	

缩写:area

<area
			shape=""
			coords=""
			href=""
			alt="" />
	

缩写:area:d

<area
			shape="default"
			href=""
			alt="" />
	

缩写:area:c

<area
			shape="circle"
			coords=""
			href=""
			alt="" />
	

缩写:area:r

<area
			shape="rect"
			coords=""
			href=""
			alt="" />
	

缩写:area:p

<area
			shape="poly"
			coords=""
			href=""
			alt="" />
	

缩写:form

<form
			action=""></form>
	

缩写:form:get

<form
			action=""
			method="get"></form>
	

缩写:form:post

<form
			action=""
			method="post"></form>
	

缩写:label

<label
			for=""></label>
	

缩写:input

<input
			type="text" />
	

缩写:inp

<input
			type="text"
			name=""
			id="" />
	

缩写:input:hidden

别名:input[type=hidden name]

<input
			type="hidden"
			name="" />
	

缩写:input:h

别名:input:hidden

<input
			type="hidden"
			name="" />
	

缩写:input:text, input:t

别名:inp

<input
			type="text"
			name=""
			id="" />
	

缩写:input:search

别名:inp[type=search]

<input
			type="search"
			name=""
			id="" />
	

缩写:input:email

别名:inp[type=email]

<input
			type="email"
			name=""
			id="" />
	

缩写:input:url

别名:inp[type=url]

<input
			type="url"
			name=""
			id="" />
	

缩写:input:password

别名:inp[type=password]

<input
			type="password"
			name=""
			id="" />
	

缩写:input:p

别名:input:password

<input
			type="password"
			name=""
			id="" />
	

缩写:input:datetime

别名:inp[type=datetime]

<input
			type="datetime"
			name=""
			id="" />
	

缩写:input:date

别名:inp[type=date]

<input
			type="date"
			name=""
			id="" />
	

缩写:input:datetime-local

别名:inp[type=datetime-local]

<input
			type="datetime-local"
			name=""
			id="" />
	

缩写:input:month

别名:inp[type=month]

<input
			type="month"
			name=""
			id="" />
	

缩写:input:week

别名:inp[type=week]

<input
			type="week"
			name=""
			id="" />
	

缩写:input:time

别名:inp[type=time]

<input
			type="time"
			name=""
			id="" />
	

缩写:input:number

别名:inp[type=number]

<input
			type="number"
			name=""
			id="" />
	

缩写:input:color

别名:inp[type=color]

<input
			type="color"
			name=""
			id="" />
	

缩写:input:checkbox

别名:inp[type=checkbox]

<input
			type="checkbox"
			name=""
			id="" />
	

缩写:input:c

别名:input:checkbox

<input
			type="checkbox"
			name=""
			id="" />
	

缩写:input:radio

别名:inp[type=radio]

<input
			type="radio"
			name=""
			id="" />
	

缩写:input:r

别名:input:radio

<input
			type="radio"
			name=""
			id="" />
	

缩写:input:range

别名:inp[type=range]

<input
			type="range"
			name=""
			id="" />
	

缩写:input:file

别名:inp[type=file]

<input
			type="file"
			name=""
			id="" />
	

缩写:input:f

别名:input:file

<input
			type="file"
			name=""
			id="" />
	

缩写:input:submit

<input
			type="submit"
			value="" />
	

缩写:input:s

别名:input:submit

<input
			type="submit"
			value="" />
	

缩写:input:image

<input
			type="image"
			src=""
			alt="" />
	

缩写:input:i

别名:input:image

<input
			type="image"
			src=""
			alt="" />
	

缩写:input:button

<input
			type="button"
			value="" />
	

缩写:input:b

别名:input:button

<input
			type="button"
			value="" />
	

缩写:isindex

<isindex />
	

缩写:input:reset

别名:input:button[type=reset]

<input
			type="reset"
			value="" />
	

缩写:select

<select
			name=""
			id=""></select>
	

缩写:option

<option
			value=""></option>
	

缩写:textarea

<textarea
			name=""
			id=""
			cols="30"
			rows="10"></textarea>
	

缩写:menu:context

别名:menu[type=context]>

<menu
			type="context"></menu>
	

缩写:menu:c

别名:menu:context

<menu
			type="context"></menu>
	

缩写:menu:toolbar

别名:menu[type=toolbar]>

<menu
			type="toolbar"></menu>
	

缩写:menu:t

别名:menu:toolbar

<menu
			type="toolbar"></menu>
	

缩写:video

<video
			src=""></video>
	

缩写:audio

<audio
			src=""></audio>
	

缩写:html:xml

<html
			xmlns="http://www.w3.org/1999/xhtml"></html>
	

缩写:keygen

<keygen />
	

缩写:command

<command />
	

缩写:bq

别名:blockquote

<blockquote></blockquote>
	

缩写:acr

别名:acronym

<acronym
			title=""></acronym>
	

缩写:fig

别名:figure

<figure></figure>
	

缩写:figc

别名:figcaption

<figcaption></figcaption>
	

缩写:ifr

别名:iframe

<iframe
			src=""
			frameborder="0"></iframe>
	

缩写:emb

别名:embed

<embed
			src=""
			type="" />
	

缩写:obj

别名:object

<object
			data=""
			type=""></object>
	

缩写:src

别名:source

<source></source>
	

缩写:cap

别名:caption

<caption></caption>
	

缩写:colg

别名:colgroup

<colgroup></colgroup>
	

缩写:fst, fset

别名:fieldset

<fieldset></fieldset>
	

缩写:btn

别名:button

<button></button>
	

缩写:btn:b

别名:button[type=button]

<button
			type="button"></button>
	

缩写:btn:r

别名:button[type=reset]

<button
			type="reset"></button>
	

缩写:btn:s

别名:button[type=submit]

<button
			type="submit"></button>
	

关于更多的HTML以及CSS的缩写请查看:

下载 API表直击官网文档

特别声明:文中演示代码来自于官网API:http://docs.emmet.io/cheat-sheet/

如需转载,请遵守W3cplus版权声明,烦请注明出处:http://www.w3cplus.com/tools/emmet-cheat-sheet.html

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索webstorm
, 编辑器
, input
, aptana
, 代码
, sublime
, sublime text
, package control
, sublime text3
, codemirror
, 别名
, type
, jdbcsqloraclemetadatasql别名
缩写
,以便于您获取更多的相关知识。

时间: 2024-10-02 11:18:36

Emmet:大幅度提高前端开发效率的工具的相关文章

5个提高Linux开发效率的工具_Linux

我们经常需要长时间地坐在电脑前做一项具体的工作只为能够优化工作流程.这包括选择和配置能让你最高效工作的工具.从长远来看,简单易学的工具并不总是好的,那些能够充分个性化并无缝地融入独特工作流程的工具才是真正的好工具. 在这篇文章中,我想向大家介绍5款免费又开源的工具,而且它们在我的软件开发生涯中发挥了很重要的作用. 1.Zsh以及Oh-My-Zsh Zsh是一个主要针对交互性和可定制而设计的shell.我常常搭配Oh-My-Zsh一起使用,Oh-My-Zsh是一个社区支持的框架,可提供无数插件和主

《Web前端开发最佳实践》——导读

前 言 Web前端开发入门难度并不高,但是初学者如果没有一个很好的学习和编码习惯,则开发水平的提高速度会变得很慢.下面几点是影响Web前端开发者技术提高的主要因素. 其一是开发者缺乏良好的实践指导.Web前端兴起的时间不长,很多大学都还没有来得及开一门专门讲解Web前端的课程,因此,大部分的Web前端开发者都是通过自学的方式来了解Web前端相关的技术.开发者学习前端技术的渠道很多,其中很大一部分是通过查找网络资源的方式,而网络上充斥着大量的错误或者过时的实践方法,这些实践方法很容易误导初学者,使

Xcode提高开发效率的代码块分享_IOS

前言 我们在开发的时候会用到很多常用的代码,比如UITableView的代理,一般情况下我们要么自己敲要么复制粘贴,但是Xcode有一个功能,可以用一行代码敲出你预设的一段代码.这就是Xcode的代码块功能,这篇文章跟大家分享一些常用的和自定义的代码块,有需要的下面来一起看看吧. 一.常用的: 1.strong: @property (nonatomic,strong) <#Class#> *<#object#>; 2.weak: @property (nonatomic,weak

跨平台的应用开发工具和前端开发工具

文章描述:前端开发者的跨平台移动应用开发策略及工具. 愉悦的周五,早些回到家,冲澡吃饭照顾猫咪家务完毕已然超过九点的样子.登录博客后台,进入编辑页面,才觉得些许轻松安逸.不坏,一天里能有这么一会沉浸在这样的感觉里,足够了. 在之前的一篇文章中,我们曾经讨论过,对于交互和视觉设计相关职能的从业人员来说,从传统Web行业向移动应用领域转型的过程中需要学习和注意的问题.这篇文章中提到过"混合型应用"的概念,以及与之相关的两本开发指导书籍.今天这篇文章的英文原文,就是来自这两本书的作者--移动

前端开发者的跨平台移动应用开发策略及工具

愉悦的周五,早些回到家,冲澡吃饭照顾猫咪家务完毕已然超过九点的样子.登录博客后台,进入编辑页面,才觉得些许轻松安逸.不坏,一天里能有这么一会沉浸在这样的感觉里,足够了. 在之前的一篇文章中,我们曾经讨论过,对于交互和视觉设计相关职能的从业人员来说,从传统Web行业向移动应用领域转型的过程中需要学习和注意的问题.这篇文章中提到过"混合型应用"的概念,以及与之相关的两本开发指导书籍.今天这篇文章的英文原文,就是来自这两本书的作者--移动应用开发者Jonathan Stark. 本文中,他将

面对前端六年历史代码,如何接入并应用ES6解放开发效率

很荣幸有机会和大家分享自己在前端工作中的一些经验.更高兴能邀请我的同事颜海镜同我一起做这件事情.其实经验说不上,只是希望能更多的和大家一起交流.学习. 为什么要讲"面对前端六年历史代码,如何接入并应用ES6解放开发效率"这个主题呢?其实相信很多人认为ES6已经不再新鲜.在前端迭代迅速的今天,会不会有些"老生常谈"?我理解并不是这样的,因为很多人其实对ES6的理解主要集中在新特性.语言用法等层面上.这些内容是大部分学习者都能通过共享得到的.但是,对于ES6往往缺少了在

前端开发:工具和流程

在dailyReport项目中,我通过SpringBoot + Mongodb + Redis构建了后端RESTful接口,现在需要客户端展现了,但是我的web和移动开发都是初学者,只能从头学起. 在谷歌上浏览资料过程中,偶然遇到ThoughtWorks的这篇文章:我们真的缺前端工程师么? 认真读下来,首先佩服文中作者的学习能力,然后欣赏ThoughtWorks这种以feature为单位的团队组建方式.文章的核心观点在于:我们不是缺前端工程师,我们是缺优秀的前端工程师. 我再激进一点,我的观点是

2017年前端开发工具趋势

本文来源于全球的5254份前端工具使用的调查报告,期望通过本文能够帮助大家更好的了解最新的前端开发工具趋势. 受访者组成 83%的受访者具有两年以上的前端技术经验,只有5%的受访者不到一年: CSS 开发者中有63%为高级开发者和专家: 尽管CSS被认为只是属性-参数值对的简单集合,但是CSS却是很难掌握的.CSS3引入了许多的新特性,要想完全的掌握CSS变得越来越困难. 如果你想学习前端可以来这个群,首先是二九一,中间是八五一,最后是一八九,里面可以学习交流也有资料可以下载. CSS预处理器

使用WEB工具快速提高Android开发效率_Android

正所谓工欲善其事,必先利其器.学习并应用优秀的轮子,可以让我们跑的更快,走的更远.这里所指的工具是广义的,泛指能帮助我们开发的东西,或者能提高我们效率的东西,包括:开发工具,监测工具,第三方代码库等. 在Google的广大支持下,便捷开发Android程序的Native工具层出不穷.其实Android开发涉及到的范围也不小,一些Web工具有时候也会带来事半功倍的效果.有些甚至是一些native应用无法做到的.本文,将简单列举一下本人正在使用的一些工具,当然也会持续更新. 查找优秀的参考工程 co