“一键”生成HTML——Emmet插件常用语法

图形学
• 阅读 12650

Emmet是一款文本编辑器/IDE的插件,用来快速生成复杂的HTML代码,只要掌握一些常用的语法(类似于CSS选择器),就可以减少重复编码的工作(主要是懒)。
我个人惯用的是sublime,因此下文介绍的语法仅在sublime测试通过,不过其它平台应该也不会有什么出入。

使用Emmet前提:设置当前为HTML语法模式

在sublime中启用Emmet,必须把当前代码的语法模式改为HTML,如果本来就是.html文件那就没问题;如果是新建的文件还没有保存过的,则需要手动先设置为HTML:

  1. 在sublime右下角点击Plain Text,弹出菜单,选择HTML
    “一键”生成HTML——Emmet插件常用语法

  2. 按下Ctrl + Shift + P,打开命令控制台,输入“HTML”,选择Set Syntax:HTML即可。
    “一键”生成HTML——Emmet插件常用语法

快捷键

Emmet使用TabCtrl + e作为自动生成HTML代码的触发器。
“一键”生成HTML——Emmet插件常用语法
如上图所示,输入完生成HTML的语句后,按下TabCtrl + e,即可生成对应的HTML代码:
“一键”生成HTML——Emmet插件常用语法

Emmet常用语法

Emmet的语法有很多,还为了进一步提高效率而为比较长的标签都设置了缩写,我个人认为记住常用的语法即可,缩写什么的真的是学习成本太高了。

生成HTML结构:!

输入!按下Tab,即可生成标准的HTML5结构:
“一键”生成HTML——Emmet插件常用语法
实际上也是可以生成HTML4的结构的,但毕竟已经过时了,这里按下不表。

后代:>

div>ul>li

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

兄弟:+

div>label+input

<div><label for=""></label><input type="text"></div>

分组:()

当我们需要写一些比较复杂的HTML结构时,有两种方式能实现,其一是上级^,但是我觉得有点逆推的意味,思路上比较绕,不好用;另外一种就是分组()了,这是程序员普遍具有的分治思想的体现。
div>(ul>li)+(ol>li)

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

重复多个:*

div>ul>li*5

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

ID:#,类:.

ID和类可以同时使用也可以分别独立使用:

  • div#article.container
    <div id="article" class="container"></div>

  • div#article
    <div id="article"></div>

  • div.container
    <div class="container"></div>

属性:[attr="val"]

label[for="passwd"]
<label for="passwd"></label>

文本内容:{}

div>a{点这里跳转}
<div><a href="">点这里跳转</a></div>

唯一比较常用的缩写:input:type

<input>里,type属性是必定要填的(你忽略type="text"我就鄙视你),而且各个type都还满常用的,因此这个缩写可以记一下:input:type等价于input[type="type"]
因为type属性可以取的值太多了,这里仅列出几个常用的作为示例:

  • input:text
    <input type="text" name="" id="">

  • input:radio
    <input type="radio" name="" id="">

  • input:checkbox
    <input type="checkbox" name="" id="">

参考资料

Emmet官方文档

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
ATOM常用插件
emmet快捷键:tab作用:html、css简写效果:具体参照emmet文档,可以按照emmet的规范,快速编写html和css,这个插件已经很有名了,就不多说,不过在atom上,快捷键会冲突,可以使用ctrlaltEnter打开输入栏输入emmet语法!(https://static.oschi
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
图形学
图形学
Lv1
巴山楚水凄凉地,二十三年弃置身。
文章
4
粉丝
0
获赞
0