`
liuguofeng
  • 浏览: 450244 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

sublime text 开发神器 之emmet 语法

 
阅读更多

Emmet缩写语法

 

缩写语法

Emmet 使用类似于 CSS 选择器的语法描述元素在生成的文档树中的位置及其属性。

元素

可以使用元素名(如 div 或者 p)来生成 HTML 标签。Emmet 没有预定义的有效元素名的集合,可以把任何单词当作标签来生成和使用:div → <div></div>foo → <foo></foo> 等。

嵌套运算符

嵌套运算符用于以缩写的方式安排元素在生成文档树中的位置:将其放在内部或成为相邻的元素。

子: >

可以使用 > 运算符指定嵌套元素在另一个元素内部:

div>ul>li

生成的结果为:

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

兄弟: +

使用 + 运算符将相邻的其它元素处理为同级:

div+p+bq

生成的结果为:

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

上升: ^

使用 > 运算符将会降低所有后续所有元素在生成树中的级别,每一级的兄弟元素也被解析成相同深度的元素:

div+div>p>span+em

将生成:

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

使用 ^ 运算符,能够提升元素在生成树中的一个级别,并同时影响其后的元素:

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>

重复: *

使用 * 运算符可以定义一组元素:

ul>li*5

将生成:

复制代码
复制代码
<ul>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
复制代码
复制代码

分组: ()

括号用于在复杂的 Emmet 缩写中处理一组子树:

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>
复制代码
复制代码

如果想与浏览器 DOM 协同工作,可能想要对文档片段分组:每个组包含一个子树,所有的后续元素都插入到与组中第一个元素相同的级别中。

能够在组中嵌套组并且使用 * 运算符绑定它们:

(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>
复制代码
复制代码

使用分组,可以使用单个缩写逐个写出整页的标签,不过尽量不要这么做。

属性运算符

属性运算符用于编辑所生成的元素的属性,在 HTML 和 XML 中可以快速地为生成元素添加 class 属性。

ID 和 CLASS

在 CSS 中,可以使用 elem#id 和 elem.class 注解来达到为元素指定 id 或 class 属性的目的。在 Emmet 中,可以使用几乎相同的语法来为指定的元素添加这些属性:element:

div#header+div.page+div#footer.class1.class2.class3

生成:

<div id="header"></div>
<div class="page"></div>
<div id="footer" class="class1 class2 class3"></div>

自定义属性

可以使用 [attr] 注解(就像在 CSS 中一样)来为元素添加自定义属性:

td[title="Hello world!" colspan=3]

将生成:

<td title="Hello world!" colspan="3"></td>
  • 能够在方括号中放置许多属性,
  • 可以不为属性指定值: td[colspan title] 将生成 <td colspan="" title=""> ,如果你的编辑器支持,可以使用 tab 来跳到每个空属性中填写。
  • 属性可以用单引号或双引号作为定界符。
  • 如果属性不包含空格,不需要用定界符括住它:td[title=hello colspan=3] 是正确的。

编号: $

使用 * 运算符可以重复生成元素,如果带 $ 就可以为它们编号。把 $ 放在元素名、属性名或者属性值中,将为每个元素生成正确的编号:

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>
复制代码
复制代码

使用多 $ 可以填充前导的零:

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>
复制代码
复制代码

在 $ 后面添加 @N 改变编号的基数:

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*5

将生成:

复制代码
复制代码
<ul>
    <li class="item7"></li>
    <li class="item6"></li>
    <li class="item5"></li>
    <li class="item4"></li>
    <li class="item3"></li>
</ul>
复制代码
复制代码

文本: {}

可以用花括号向元素中添加文本:

a{Click me}

将生成:

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

注意,这个 {text} 是被当成独立元素解析的(类似于 divp ),但当其跟在其它元素后面时则有所不同。例如, a{click} 和 a>{click} 产生相同的输出,但是 a{click}+b{here} 和 a>{click}+b{here} 的输出就不同了:

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

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

在第二示例中, <b> 元素放在了 <a> 元素的里面。差别如下:当 {text} 写在元素的后面,它不影响父元素的上下文。下面是展示这种差别的重要性的较复杂的例子:

p>{Click }+a{here}+{ to continue}

生成:

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

在这个例子里, 我们用 > 运算符明确的将 Click here to continue 下移一级,放在 <p> 元素内,但对于 a 元素的内容就不需要了,因为 <a> 仅有 here 这一部分内容,它不改变父元素的上下文。

作为比较,下面是不带有 > 运算符的相同缩写:

p{Click }+a{here}+{ to continue}

生成:

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

缩写格式的注意事项

当熟悉了 Emmet 的缩写语法后,可能会想要使用一些格式来生成更可读的缩写。例如,在元素和运算符之间使用空格间隔:

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

但是这种写法是错误的,因为空格是 Emmet 停止缩写解析的标识符

请多用户误以为每个缩写都应写在新行上,但是他们错了:可以在文本的任意位置键入和扩展缩写。

(此处原文使用脚本做了一段示例,限于博客的体例,我没有办法将原文的示例脚本放在本文中,因此用截屏工具录下了一段屏幕,放在此处,有兴趣的朋友,可以去原文地址去看原文中的示例)

这也就是为什么当想要停止解析和扩展时,Emmet 需要一些标志的原因。如果你仍然认为复杂的缩写需要一些格式使其更易读:

  • 缩写不是模板语言,它们不需要”易读“,它们必须”可快速扩展和移动“。
  • 不需要写复杂的缩写。不要认为在 web 编程中”键入“是最慢的运算。想快速找出构建单个的复杂缩写比构造和键入一些较短较简单的缩写更慢。
分享到:
评论

相关推荐

    Sublime Text 3最新emmet插件

    同时,Sublime Text 3的优秀性能和Emmet的高效组合,使得这款编辑器成为前端开发者的首选工具之一。如果你还没有尝试过,强烈建议下载这个最新的Sublime Text 3和Emmet插件,相信它会给你带来前所未有的编码体验。

    Sublime Text 3(40多插件+4主题)

    在提供的描述中提到了40多个插件和4个主题,这些额外的组件极大地扩展了Sublime Text 3的功能,使得它能够更好地满足用户在不同编程语言和开发场景下的需求。 其中,"emmet"插件是HTML和CSS编码的神器,通过简短的...

    Sublime Text 3 常用 package

    emmet-sublime 是Sublime Text 3中的emmet 插件版本。它提供了快速编写HTML和CSS的缩写功能,比如输入`div&gt;ul&gt;li*5`,然后按下扩展快捷键,就能自动生成5个嵌套在div下的li元素。这极大地提高了编写HTML模板的速度和...

    sublime text,集成各种插件

    Sublime Text的强大之处在于其丰富的插件生态系统。以下是一些常用插件及其功能: 1. Package Control:安装和管理Sublime Text插件的必备工具,可通过它来查找、安装和更新插件。 2. Emmet:前端开发者的神器,...

    SublimeText3207.zip

    首先,Sublime Text 3的特色之一是其强大的代码高亮功能。它能够根据你正在编辑的语言自动识别并突出显示语法,帮助你更快地理解和修改代码。此外,它还支持自定义主题和配色方案,让你可以根据个人喜好定制工作环境...

    SublimeText3插件

    - Emmet:前端开发神器,支持HTML和CSS的快速编写,如缩写扩展、选择器等。 - SideBarEnhancements:增强侧边栏功能,提供更多文件和文件夹操作选项。 - GitGutter:显示自上次提交以来文件的改动,便于版本控制...

    Sublime Text2安装与配置教程_Python

    Sublime Text2是一款广受欢迎的文本编辑器,尤其在编程社区中备受青睐,因其轻量级、高效且高度可定制的特性,使得它成为Python开发者的首选工具之一。本教程将详细讲解Sublime Text2的安装与配置过程,帮助你快速...

    Sublime Text3 绿色免安装

    综上所述,Sublime Text3绿色免安装版为开发者提供了一个强大且灵活的文本编辑环境,结合Z-Coding和emmet插件,使得前端开发变得更加高效。无论你是初学者还是经验丰富的开发者,这款工具都能成为你编程旅程中的得力...

    Sublime text

    总的来说,Sublime Text 3配合Package Control,不仅是一个强大的文本编辑器,更是一个功能丰富的开发环境。通过安装和配置合适的插件,你可以极大地提高工作效率,享受编码的乐趣。所以,熟练掌握Package Control的...

    SublimeText3中文全插件.rar

    总的来说,"SublimeText3中文全插件.rar"提供了完整的Sublime Text 3编辑器和一系列针对中文用户的插件,涵盖了前端开发、代码检查、效率提升等多个方面,是前端开发者不可或缺的工具之一。通过合理利用这些工具,...

    sublime text3 Build 3176 X86 插件和原版.zip

    - ** Emmet**:快速编写HTML和CSS的神器,支持语法缩写展开。 - **ColorPicker**:快速选择和插入颜色值。 - **SublimeLinter**:语法检查工具,帮助找出潜在的代码错误。 - **MarkdownEditing**:为Markdown语法...

    Sublime Text 3 Windowsx64

    **Sublime Text 3** 是一款广受欢迎的文本编辑器,尤其在前端开发领域被誉为神器。它专为高效代码编写而设计,支持多种编程语言,并且具有强大的自定义能力和丰富的插件生态系统。这款编辑器是跨平台的,适用于...

    代码编辑器(Sublime text 3)

    Sublime Text 3是一款广受开发者喜爱的代码编辑器,被誉为神器,因为它具有高效、轻量级、可高度自定义的特性。这款编辑器适用于多种编程语言,支持Windows、Mac OS X以及Linux三大操作系统,为程序员提供了强大的...

    Sublime Text3.3126 x64

    - Emmet:前端开发神器,快速编写HTML和CSS。 - GitGutter:显示文件自上次提交以来的更改。 - SideBarEnhancements:增强侧边栏功能,如右键菜单的更多选项。 - Package Control:用于安装、管理和更新Sublime ...

    web代码编辑神器SublimeText

    Sublime Text是一款备受推崇的轻量级、跨平台的文本编辑器,尤其在Web开发领域中,它被誉为“代码编辑神器”。这款软件以其高效的性能、丰富的功能和高度自定义性赢得了广大开发者的心。 首先,Sublime Text的一个...

    Sublime Text3 中文版 解压可用

    总的来说,这个Sublime Text3中文版不仅提供了解压即用的便利,还包含了多项实用插件,覆盖了从代码编写、格式化、验证到美化等多个环节,极大地提升了开发效率,降低了学习曲线,尤其适合初学者和需要快速工作的...

    sublime_text-build4121-patch.zip

    此外,Sublime Text还支持大量的插件,如SideBarEnhancements(增强侧边栏功能)、GitGutter(显示git改动)、Emmet(前端开发神器)等,进一步扩展了其功能。 总的来说,这个补丁提供了Sublime Text用户一个便捷的...

    SublimeText3(64位系统汉化版)

    Sublime Text 3是一款广受开发者喜爱的代码编辑器,尤其在64位操作系统中表现卓越。这款编辑器以其高效、轻量级和强大的功能集而闻名,被誉为“编辑神器”。下面将详细介绍Sublime Text 3的主要特点和功能,以及如何...

    Sublime-已安装插件版,开发必备

    1. **Package Control**:这是Sublime Text最重要的插件之一,它提供了一个方便的界面来管理和安装其他插件。在预装版本中,Package Control很可能已经安装好,使得用户能轻松地更新和探索更多插件。 2. **...

Global site tag (gtag.js) - Google Analytics