Skip to content
Shimon's BlogShimon's Blog
主页
杂谈
  • 主页
      • 代码笔记
          • 网页入门
              • Emmet 语法
                • CSS Emmet
                  • HTML Emmet
                    • 元素创建
                      • 结构操作
                        • 子元素
                          • 兄弟元素
                            • 上移
                              • 重复
                                • 分组
                                • 属性操作
                                  • ID 与 class
                                    • 自定义属性
                                      • 项目编号
                                        • 文本
                                        • 隐式标签名称
                                          • 工作原理
                                          • Lorem Ipsum 生成
                                            • 其他内容
                                          • Http 与 Https 介绍
                                            • JavaScript 教程

                                          HTML Emmet

                                          Shimon Zhan2019年9月3日
                                          • Emmet
                                          • 快捷键
                                          • HTML
                                          大约 4 分钟

                                          此页内容
                                          • 元素创建
                                          • 结构操作
                                            • 子元素
                                            • 兄弟元素
                                            • 上移
                                            • 重复
                                            • 分组
                                          • 属性操作
                                            • ID 与 class
                                            • 自定义属性
                                            • 项目编号
                                            • 文本
                                          • 隐式标签名称
                                            • 工作原理
                                          • Lorem Ipsum 生成
                                          • 其他内容

                                          # 元素创建

                                          1. 在编辑器中输入元素名称之后按下 tab 即可自动补全生成 HTML 标签,即使不是标准的 HTML 标签。

                                          创建文档

                                          输入: ! 或者 html:5 将创建 HTML 基本结构。

                                          # 结构操作

                                          # 子元素

                                          使用 > 生成子元素

                                          案例

                                          div>ul>li:

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

                                          # 兄弟元素

                                          使用 + 生成兄弟元素

                                          案例

                                          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>ul>li*5:

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

                                          # 分组

                                          使用 () 将元素分组

                                          案例

                                          + 后面的元素与括号中的第一个元素属于兄弟关系

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

                                          <div>
                                            <header>
                                              <ul>
                                                <li></li>
                                                <li></li>
                                              </ul>
                                            </header>
                                            <footer>
                                              <p></p>
                                            </footer>
                                          </div>
                                          

                                          # 属性操作

                                          # ID 与 class

                                          元素与 id 属性值之间用 # 分隔,与 class 属性值之间用 . 分隔

                                          案例

                                          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>
                                          

                                          # 自定义属性

                                          在 Emmet 中,使用 [] 标记其他属性。

                                          您无需输入引号,直接使用 [属性1=值1 属性2=值2 ... ] 即可。

                                          • 您可以在方括号内放置任意数量的属性。

                                          • 您不必指定属性值: td[colspan title] 会生成 <td colspan="" title="">。

                                            接下来您可以通过按下 tab 将光标顺序移动至每个空属性内,这会让您很方便的输入内容。

                                          • 您可以使用单引号或双引号来引用属性值。如果值不包含空格,则无需引用它们。如: td[title=hello colspan=3]

                                          案例

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

                                          <td title="Hello world!" colspan="3"></td>
                                          

                                          # 项目编号

                                          用 $ 符号实现 1 到 n 的自动编号 (* 实现多个元素)

                                          案例

                                          li.item$*3:

                                          <li class="item1"></li>
                                          <li class="item2"></li>
                                          <li class="item3"></li>
                                          

                                          可在 $ 后添加 @n 修改编号的起始值为 n。

                                          案例

                                          li.item$@3*3:

                                          <li class="item3"></li>
                                          <li class="item4"></li>
                                          <li class="item5"></li>
                                          

                                          可在 “$” 后添加 “@-” 修改编号的方向。

                                          案例

                                          li.item$@-3*3:

                                          <li class="item5"></li>
                                          <li class="item4"></li>
                                          <li class="item3"></li>
                                          

                                          您可以连续使用多个 $ 以零填充数字。

                                          案例

                                          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>
                                          

                                          # 文本

                                          使用 {} 添加文本内容

                                          案例

                                          a[href=me.html]{click me}:

                                          <a href="me.html">click me</a>
                                          

                                          注意

                                          请注意,{text} 是作为一个单独的元素使用和解析的。

                                          请理解以下案例:

                                          <!-- a{click}+b{here} -->
                                          <a href="">click</a><b>here</b>
                                          
                                          <!-- a>{click}+b{here} -->
                                          <a href="">click<b>here</b></a>
                                          
                                          <!-- p>{Click }+a{here}+{ to continue} -->
                                          
                                          <p>Click <a href="">here</a> to continue</p>
                                          

                                          # 隐式标签名称

                                          即使使用功能强大的缩写引擎(可以从短缩写扩展大型 HTML 结构),编写标签名称也可能非常繁琐。

                                          在许多情况下,您可以跳过键入标签名称的操作,而 Emmet 会自动为您生成一个。例如,您可以简单地将 div.content 写为 .content,Emmet 将自动扩展为 <div class="content"></div>。

                                          # 工作原理

                                          扩展缩写词时,Emmet 会尝试在其内部扩展缩写词的地方获取上下文进行推断。如果成功捕获了上下文,Emmet 将使用其名称来解析隐式名称。

                                          案例
                                          Emmet 缩写Emmet 实际输出
                                          .wrap>.contentdiv.wrap>div.content
                                          em>.infoem>span.info
                                          ul>.item*3ul>li.item*3
                                          table>#row$*4>[colspan=2]table>tr#row$*4>td[colspan=2]

                                          # Lorem Ipsum 生成

                                          lorem 是一个示例词的生成器,您可以很方便的生成一些预设文字查看效果。它会自动根据标签调整文字数量,并在重复时轮换输出。

                                          案例

                                          p*4>lorem:

                                          <p>
                                            Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui dicta minus
                                            molestiae vel beatae natus eveniet ratione temporibus aperiam harum alias
                                            officiis assumenda officia quibusdam deleniti eos cupiditate dolore doloribus!
                                          </p>
                                          <p>
                                            Ad dolore dignissimos asperiores dicta facere optio quod commodi nam tempore
                                            recusandae. Rerum sed nulla eum vero expedita ex delectus voluptates rem at
                                            neque quos facere sequi unde optio aliquam!
                                          </p>
                                          <p>
                                            Tenetur quod quidem in voluptatem corporis dolorum dicta sit pariatur porro
                                            quaerat autem ipsam odit quam beatae tempora quibusdam illum! Modi velit odio
                                            nam nulla unde amet odit pariatur at!
                                          </p>
                                          <p>
                                            Consequatur rerum amet fuga expedita sunt et tempora saepe? Iusto nihil
                                            explicabo perferendis quos provident delectus ducimus necessitatibus
                                            reiciendis optio tempora unde earum doloremque commodi laudantium ad nulla vel
                                            odio?
                                          </p>
                                          

                                          ul.generic-list>lorem10.item*4:

                                          <ul class="generic-list">
                                            <li class="item">
                                              Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nam vero.
                                            </li>
                                            <li class="item">
                                              Laboriosam quaerat sapiente minima nam minus similique illum architecto et!
                                            </li>
                                            <li class="item">
                                              Incidunt vitae quae facere ducimus nostrum aliquid dolorum veritatis dicta!
                                            </li>
                                            <li class="item">
                                              Tenetur laborum quod cum excepturi recusandae porro sint quas soluta!
                                            </li>
                                          </ul>
                                          

                                          # 其他内容

                                          某些元素(例如 a 或)img 会转换为具有预定义属性的元素: <a href=""></a> 和 <img src="" alt="" />。

                                          同时 emmet 还包含了一些常用缩写,如 bq 会输出 <blockquote></blockquote>。

                                          这些功能是通过预置的 snippets 实现的。

                                          相关信息

                                          部分 snippets 内容:

                                          ...
                                          {
                                            "a": "a[href]",
                                            "img": "img[src alt]/",
                                            "bq": "blockquote",
                                            "fig": "figure",
                                            "cap": "caption",
                                            "pic": "picture",
                                            "mn": "main",
                                            "!!!": "{<!DOCTYPE html>}",
                                            "doc": "html[lang=${lang}]>(head>meta[charset=${charset}]+meta:vp+title{${1:Document}})+body",
                                            "!|html:5": "!!!+doc",
                                          }
                                          

                                          完整的 HTML snippets 请见 Emmet Repoopen in new window

                                          上次编辑于: 2022/4/19 07:13:07
                                          贡献者: ShimonZhan
                                          上一页
                                          CSS Emmet
                                          Copyright © 2021-present Shimon Zhan