Emmet快速开发
标签元素关系展开
div.wrap>div.content>(div.inner_l+div.inner_r)^div.sider ------缩写展开如下---------------------------------------------- <div class="wrap">
<div class="content">
<div class="inner_l"></div>
<div class="inner_r"></div>
</div>
<div class="sider"></div>
</div>
从这个html代码缩写里面我们可以看到使用了4个符号,分别是:
> 后面代表子元素
+ 后面代表下一个兄弟元素
^ 代表返回父级元素
() 小括号代表代表一个缩写集合
具有特定结构的标签展开
ul+ ------缩写展开如下---------------------------------------------- <ul>
<li></li>
</ul>
这类特定的标签,缩写时在后面添加一个 +(加号),展开时会默认生成其子元素。类似的标签还有 map、dl、ol、table 等。
标签元素添加属性
table[cellpadding=0 cellspacing=0 width=100%] ------缩写展开如下---------------------------------------------- <table cellpadding="0" cellspacing="0" width="100%"></table>
标签元素的属性写在标签后紧跟的中括号内,属性之间用空格隔开,如果某个属性中有空格,那么属性值就需要添加引号。
id 和 class 属性是不需要写在中括号里面的,直接写 #idName 和 .className 就可以了,并且可以写多个 className,如:div#a.b.c
标签元素内添加文本节点
div{我是文本节点}
------缩写展开如下----------------------------------------------
<div>我是文本节点</div>
文本节点写在标签元素后面紧跟的大括号里面,并且,大括号里面可以用 $ 符号写入递增数字。
一些省略标签的展开方式,如:
在行内元素中省略子标签
span>.c
strong>.c
b>.c ------缩写展开如下---------------------------------------------- <span><span class="c"></span></span>
<strong><span class="c"></span></strong>
<b><span class="c"></span></b>
由此可以看出,在行内元素内省略子元素标签,子元素标签就会默认为 span 标签。
后续测试,p 元素默认的子元素也是 span 元素。而 h1-h6 标题标签默认的则是 div 元素,这和div元素的默认子元素是一样的。
因此可以得出一个结论,行内元素和p这个不能插入块元素的标签的默认子元素就是 span 元素。而除特定标签外的块元素默认插入的子元素则是div元素。
生成多个类似元素
ul>li.item-${$}*5
------缩写展开如下----------------------------------------------
<ul>
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
<li class="item-4">4</li>
<li class="item-5">5</li>
</ul>
我们可以在标签后面添加 *number 来生成我们需要标签的个数,同时还可以使用 $ 来递增改变数字部分,如 class 值中也可以使用这一符号。并且可以同时使用多个 $ 符号,如:
ul>li.item-$$${$$}*5
------缩写展开如下----------------------------------------------
<ul>
<li class="item-001">01</li>
<li class="item-002">02</li>
<li class="item-003">03</li>
<li class="item-004">04</li>
<li class="item-005">05</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>
生成多个类似元素,指定递减结束数
ul>li.item$@-3[title]{文本节点}*5
------缩写展开如下----------------------------------------------
<ul>
<li class="item7" title="">文本节点</li>
<li class="item6" title="">文本节点</li>
<li class="item5" title="">文本节点</li>
<li class="item4" title="">文本节点</li>
<li class="item3" title="">文本节点</li>
</ul>
缩写代码后缀
这里只举前端用到的那部分,主要讲到 |e、|c 、|s、|t 这四个后缀
|e 后缀
div.box>div.inner{▪¥×}|e
------缩写展开如下----------------------------------------------
<div class="box">
<div class="inner">▪¥×</div>
</div>
|e 后缀的作用就是将缩写里面的特殊字符转义成字符编码
|c 后缀
div.box>div.inner{▪¥}>div|c
------缩写展开如下----------------------------------------------
<div class="box">
<div class="inner">▪¥
<div></div>
</div>
<!-- /.inner -->
</div>
<!-- /.box -->
|c 后缀的作用就是给每个有 class 或 id 的元素添加结束注释。
|s 后缀
div.box>div.inner{▪¥}|s
------缩写展开如下----------------------------------------------
<div class="box"><div class="inner">▪¥</div></div>
|s 后缀的作用就是将缩写代码在一行中展开。
以上三种后缀可以同时使用多个,可以达到多个效果结合。
|t 后缀
最后来说下 |t 后缀,该后缀和上面其他的后缀有所不同,他使用的主要是给带有数字开头的文本节点包标签,并去掉开始的数字(可以带有小数点或中华线),如:
12-3文本节点1
45-文本节点2
78、文本节点3
7.文本节点4
7,文本节点4
s文本节点4 ------缩写展开如下---------------------------------------------- <ul>
<li>文本节点1</li>
<li>文本节点2</li>
<li>、文本节点3</li>
<li>文本节点4</li>
<li>,文本节点4</li>
<li>s文本节点</li>
</ul>
操作方法是,先选中这段文本,按下 ctrl+shift+g 快捷键(Wrap with Abbreviation),再输入 ul>li*|t 回车,就会展开这个结果了。由此可以看出,|t 可以将这些文本节点前面的数字删除掉。
最后介绍一个自动生成测试文本的代码
自动生成文本节点的代码是 lorem 或 lipsum 字符串,这两个字符串后面可跟一个数字,用于确定生成多少个单词,默认生成30个单词。如:
p>lorem10 或 p>lipsum10 ------缩写展开如下---------------------------------------------- p>lipsum10|e
lorem只能跟在 >(右括号)的后面,表示前一个标签的内容。
如果 lorem 后面还跟着 class 、 id 或 *number,那么就会在父标签里面创建一个默认标签,并未这个标签添加这个 class 或 id ,最后把生成的文本节点放到子标签里面。如:
ul>lorem*5
或
ul>li*5>lorem
------缩写展开如下---------------------------------------------- <ul>
<li>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe, nulla, asperiores quod ea facilis nostrum tempora dolores suscipit odio quasi doloribus nemo provident est deleniti molestias culpa ipsam assumenda! Doloremque.</li>
<li>Eligendi, recusandae vitae tempore deleniti omnis alias distinctio asperiores commodi veritatis obcaecati id totam porro culpa earum rerum voluptatum cupiditate adipisci eos minima nesciunt eius modi repellendus minus eum doloribus?</li>
<li>Aliquam, iure, eaque, accusantium vero modi est quam deserunt rerum minima in quisquam aut culpa odio quasi quibusdam optio pariatur suscipit cumque enim cum placeat quas vitae sed ullam fugiat!</li>
<li>Deleniti, iusto, officia, sunt optio reiciendis error nihil sit amet dolorem debitis perferendis vel quia hic minus obcaecati ducimus consequatur aliquid sapiente at nam dolorum ipsum harum impedit vero tempora!</li>
<li>Dicta earum aspernatur praesentium accusantium nam. Ipsam, ducimus corporis reiciendis laudantium iste consequatur debitis error tempora labore in. Fugit, quos eaque deserunt cupiditate et beatae provident ipsa expedita vel nam.</li>
</ul>
可以到ul>lorem*5和ul>li*5>lorem展开后的代码是一样的。
Emmet官网:http://emmet.io/
Emmet缩写集合:http://docs.emmet.io/cheat-sheet/
Emmet缩写设置-配置文件:http://docs.emmet.io/customization/snippets/
Emmet快速开发的更多相关文章
- 我也来谈谈使用Zen Coding快速开发html和css原理
zen coding 是一种仿css选择器的语法来快速开发html和css的开源项目.现已更名为Emmet.可以到github上下载拜读.在这个都想偷懒的世界里,此方法可以极大的缩短开发人员的开发时间 ...
- arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序
前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...
- 快速开发Grunt插件----压缩js模板
前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...
- winform快速开发平台->让有限的资源创造无限的价值!
最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...
- winform快速开发平台 -> 通用权限管理之动态菜单
这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...
- winform快速开发平台 -> 工作流组件(仿GooFlow)
对于web方向的工作流,一直在用gooflow对于目前我的winform开发平台却没有较好的工作流组件. 针对目前的项目经验告诉我们.一个工作流控件是很必要的. 当然在winform方面的工作流第三 ...
- winform快速开发平台 -> 快速绑定ComboBox数据控件
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
- 使用GizwitsOpenAPI,快速开发轻应用
导读:使用机智云提供的Open API(Http / WebSocket),可以快速开发网页或微信应用等基于html的轻应用,用于管理和控制智能设备.机智云 Open API 主要帮助开发者通过 HT ...
随机推荐
- winForm 中子窗体关闭但不释放对象,方便下次继续打开
方法一: 修改子窗体中自动生成的Dispose方法(在Form.Designer.cs文件中) /// <summary> /// Clean up any resources being ...
- c#的协变和逆变
关于协变和逆变要从面向对象继承说起.继承关系是指子类和父类之间的关系:子类从父类继承,所以子类的实例也就是父类的实例.比如说Animal是父类,Dog是从Animal继承的子类:如果一个对象的类型是D ...
- soinn
Growing Cell Structures A Self-Organizing Network for Unsupervised and Supervised Learning Here, and ...
- 阶段性放弃 wxPython 前的总结
为了实现一个管理本地电子书的程序,搞了一段时间 GUI,使用 wxPython. 实在难以适应和习惯,也搞不出什么太好看的效果. 最不能忍受的是,多线程处理能力太弱.遂决定放弃 GUI. 放弃之前,整 ...
- 通过telnet命令进行网络邮件发送
1.建立smtp邮箱服务连接 open smtp.sina.com 2.连接上邮箱服务后进行握手操作 helo smtp.sina.com 3.输入帐号密码进行验证::此步后缓冲区会输出一些字符,你只 ...
- iOS Icon尺寸、iPhone Ratina 分辨率
高清晰度的iPhone和iPod touch(单位:像素) 启动影像 :640 x 960 APP图标:114 x 114 App Store商店:1024 x 1024 Spotlight搜索小图标 ...
- Android Studio 单刷《第一行代码》系列目录
前言(Prologue) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...
- embed标签遮住div层
依然是上次的那个返工友情项目,当时帮忙用jquery ui写了一个漂浮的投票箱,就是类似点击一个项目然后就收藏到了投票箱中的效果.. 虽然不是很复杂,但是由于页面上有大面积的由kindeditor上传 ...
- 【扩展欧几里得】Codevs 1200: [noip2012]同余方程
Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. Input Description 输入只有一行,包含两个正整数 a, b,用 一个 空格隔开. Outpu ...
- 破解之寻找OEP[手动脱壳](2)
1.使用ESP定律 OD载入后,F8一次,在寄存器窗口的ESP的内容上(如0012FFA4)右键:“在数据窗口中跟随”,到内存数据窗口,将内存数据窗口以HEX 数据形式显示,在刚才的地址起始位置上(如 ...