• Emmet语法


    Emmet 语法

    空格是 Emmet 停止缩写解析的标识符。

    HTML 缩写

    元素

    使用元素名生成 HTML 标签,Emmet 没有预定义的有效元素名的集合,可以将任何单词当做标签来生成和使用。

    嵌套运算符

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

    子:>

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

    <!-- 简写 -->
    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*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>
    <!-- 使用分组,可以使用单个缩写逐个写出整页的标签,不过尽量不要这么做。 -->
    

    编号:$

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

    <!-- 简写 -->
    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} 是被当成独立元素解析的(类似于 div, p ),但当其跟在其它元素后面时则有所不同。例如, 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
    

    其他

    <!-- 隐式标签 -->
    <!-- 缩写:.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 -->
    &l
    

    属性运算符

    属性运算符用于编辑所生成的元素的属性,在 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] 将生成 ,如果你的编辑器支持,可以使用 tab 来跳到每个空属性中填写。
    • 属性可以用单引号或双引号作为定界符。
    • 如果属性不包含空格,不需要用定界符括住它:td[title=hello colspan=3] 是正确的。

    css 缩写

    • 1 值:
      w100 =>100px;
      h10p+m5e =>height:10%;margin:5em
      单位别名列表:p => %;e =>em;x =>ex
    • 2 附加属性:
    /* @f,可以生成: Css 代码  */
    @font-face {
      font-family: ;
      src: url();
    }
    /* 一些其他的属性,比如background-image、border-radius、font、@font-face,text-outline、text-shadow等额外的选项,可以通过“+ ”符号来生成,比如输入@f+,将生成:Css代码 */
    @font-face {
      font-family: "FontName";
      src: url("FileName.eot");
      src: url("FileName.eot?#iefix") format("embedded-opentype"), url("FileName.woff")
          format("woff"), url("FileName.ttf") format("truetype"), url("FileName.svg#FontName")
          format("svg");
      font-style: normal;
      font-weight: normal;
    }
    
    • 3 模糊匹配
      如果有些缩写你拿不准,Emmet 会根据你的输入内容匹配最接近的语法,比如输入 ov:h、ov-h、ovh 和 oh,生成的代码是相同的:Css 代码 overflow: hidden;

    • 4 针对不同编辑器的插件

    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

  • 相关阅读:
    Python 多线程学习(转)
    自己使用python webob,paste.deploy,wsgi总结
    Python中*args 和**kwargs的用法
    python 数字和字符串转换问题
    python socket编程
    深入解读Quartz的原理
    解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
    Tomcat的Manager显示403 Access Denied
    mysql5.6 linux下安装笔记
    Quartz应用与集群原理分析
  • 原文地址:https://www.cnblogs.com/bug-jin/p/10267883.html
Copyright © 2020-2023  润新知