范仁义Emmet课程---1、HTML速写之Emmet语法规则
一、总结
一句话总结:
Emmet是一款能够飞速书写html代码的工具,能大大提高代码书写速率,语法使用也比较简单
1、Emmet中如何快速敲出html初始结构?
!(英文状态下的感叹号),然后按tab键
2、Emmet中id和class分别对应的符号是什么?
和css中的一样,id是#号,class是.点号
3、Emmet中表示层次节点的符号?
子节点(>),兄弟节点(+),上级节点(^)
4、Emmet中表示重复和变量的符号分别是什么?
重复(*),变量($):一个$ 代表一位数,$$就是两位数了,以此类推就可以形成$(1),$$(01),$$$(001)
5、Emmet中中的分组用什么符号?
小括号():英文状态下的小括号
6、Emmet中表示属性的是什么符号?
英文状态下的中括号[attr],比如a[href='###' name='xiaoA']
7、Emmet中的隐式标签是什么?
某些情况下,Emmet可以自动识别标签,比如.test识别为div.test,比如ul>.test$*3识别为ul>li.test$*3等等
二、【Emmet】HTML速写之Emmet语法规则
博客对应课程的视频位置:1、HTML速写之Emmet
https://fanrenyi.com/video/18/72
转自或参考:【Emmet】HTML速写之Emmet语法规则_Y.Cheng的博客-CSDN博客
https://blog.csdn.net/qq_33744228/article/details/80910377
emmet官网语法地址
Abbreviations Syntax
https://docs.emmet.io/abbreviations/syntax/
在前端开发的过程中,最费时间的工作就是写 HTML、CSS 代码。一堆的标签、属性、括号等,头疼。这里推荐一个Emmet语法规则,让你写的时候爽到飞起,能大大提高代码书写,只需要敲一行代码就能生成你想要的完整HTML结构,下面会介绍如何使用。
Emmet是一款插件,只要能安装他的编辑器都能使用,大部分编辑器都可以使用该语法规则,我们平时开发的Sublime Text
、Eclipse
、Notepad++
、VS code
、Atom
、Dreamweaver
等等编辑器都可以使用。
安装方式和平时安装插件一样搜索这个emmet插件安装,每个编辑器安装方式不同,请各自尝试
先来个例子:
这个普通的HTML结构,你需要多久打出来呢?
我只需要几秒钟,写好下面这条语句,按下键盘Tab
键即可看到上图中的结构了
div#box>p.title+ul.list>li.child${我是第$个}*3^div#box2
是不是很爽,很快~~啊 ~ 啊~,仅仅一行代码就生成了一个复杂的HTML结构,并且id,class,内容都对应的上
1:html初始结构
下图中的结构,偷懒的都会直接一个!=> Tab 解决,这样可以快速生成基础的结构,同时防止手写时忘记某个代码块,输入错误的代码。
2:id(#),class(.)
id指令:# ; class指令:.
- div#test
<div id="test"></div>
- div.test
<div class="test"></div>
3:子节点(>),兄弟节点(+),上级节点(^)
子节点指令:> ; 兄弟节点指令:+ ; 上级节点:^
- div>ul>li>p
<div>
<ul>
<li>
<p></p>
</li>
</ul>
</div>
- div+ul+p
<div></div>
<ul></ul>
<p></p>
- div>ul>li^div (这里的
^
是接在li
后面所以在li
的上一级,与ul
成了兄弟关系,当然两个^^就是上上级)
<div>
<ul>
<li></li>
</ul>
<div></div>
</div>
4:重复(*)
重复指令:*
- div*5(*号后面添加数字表示重复的元素个数)
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
5:分组(())
分组指令:()
- div>(ul>li>a)+div>p
(括号里面的内容为一个代码块,表示与括号内部嵌套和外面的的层级无关)
<div>
<ul>
<li><a href=""></a></li>
</ul>
<div>
<p></p>
</div>
</div>
解释:这里如果不加括号的话,猜想下,a+div
这样div就是和a是兄弟关系了,会包含在li里面。懂了吧哈哈
<div>
<ul>
<li>
<a href=""></a>
<div>
<p></p>
</div>
</li>
</ul
6:属性([attr])——id,class都有怎么能少了属性呢
属性指令:[]
- a[href=’###’ name=‘xiaoA’] (中括号内填写属性键值对的形式,并且空格隔开)
<a href="###" name="xiaoA"></a>
###6:编号()‘编号指令:) `编号指令:)‘编号指令: `
- ul>li.test$*3 ($代表一位数,后面更上*数字就代表从1递增到填写的数字)
<ul>
<li class="test1"></li>
<li class="test2"></li>
<li class="test3"></li>
</ul>
注意:
- 一个$ 代表一位数,$$就是两位数了,以此类推就可以形成$(1),$$(01),$$$(001)
- 如果想自定义从几开始递增的话就利用:$@+数字数字
例如:ul>li.test$@33
<ul>
<li class="test3"></li>
<li class="test4"></li>
<li class="test5"></li>
</ul>
7:文本({})
文本指令:{}
- ul>li.test$*3{测试$} ({里面填写内容,可以和$一起组合使用哦})
<ul>
<li class="test1">测试1</li>
<li class="test2">测试2</li>
<li class="test3">测试3</li>
</ul>
8:隐式标签
这个标签没有指令,而是部分标签可以不使用输入标签,直接输入指令,即可识别父类标签。
例如:.test
<div class="test"></div>
例如:ul>.test$*3
<ul>
<li class="test1"></li>
<li class="test2"></li>
<li class="test3"></li>
</ul>
例如:select>.test$*5
<select name="" id="">
<option class="test1"></option>
<option class="test2"></option>
<option class="test3"></option>
<option class="test4"></option>
<option class="test5"></option>
</select>
等等…
隐私标签有如下几个:
- li:用于 ul 和 ol 中
- tr:用于 table、tbody、thead 和 tfoot 中
- td:用于 tr 中
- option:用于 select 和 optgroup 中
最后就是:看没用,操作几遍,几分钟你就能掌握这些指令,然后飞快的撸码
三、课程代码
1、HTML速写之Emmet语法规则.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>HTML速写之Emmet语法规则</title> 6 </head> 7 <body> 8 9 <!--.box>p.title+ul.list>.child${我是第$个}*3^div#box2--> 10 <div class="box"> 11 <p class="title"></p> 12 <ul class="list"> 13 <li class="child1">我是第1个</li> 14 <li class="child2">我是第2个</li> 15 <li class="child3">我是第3个</li> 16 </ul> 17 <div id="box2"></div> 18 </div> 19 20 --------------------------------------------- 21 <div id="box"> 22 <p class="title"></p> 23 <ul class="list"> 24 <li class="child1">我是第1个</li> 25 <li class="child2">我是第2个</li> 26 <li class="child3">我是第3个</li> 27 </ul> 28 <div id="box2"></div> 29 </div> 30 31 </body> 32 </html>
2、Emmet语法
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" 6 content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Document</title> 9 </head> 10 <body> 11 <!--1、生成html基本结构--> 12 <!-- 13 英文状态下的感叹号! ==> 按tab键 14 --> 15 16 <!-- 17 2、id用#号键表示,class用.号表示 18 --> 19 <!--div#div1--> 20 <div id="div1"></div> 21 <div class="class1"></div> 22 23 <!-- 24 3、emmet中没有内置的标签,所有的东西写好我们都可以按tab键来生成标签 25 --> 26 <!--fry--> 27 <fry></fry> 28 29 <!-- 30 4、emmet中如何表示层级关系 31 emmet的语法和css选择器的语法很像 32 33 >:子元素 34 +:表示同级 35 ^:表示上一级 36 --> 37 <div> 38 <table></table> 39 </div> 40 <!--ul+div--> 41 <ul></ul> 42 <div></div> 43 <!--div>div.test^ul--> 44 <div> 45 <div class="test"></div> 46 </div> 47 <ul></ul> 48 <!--这个^符号可以用多次,每一次的话相当于往上面爬一级--> 49 <!--div>div>div>div^^^table--> 50 <div> 51 <div> 52 <div> 53 <div></div> 54 </div> 55 </div> 56 </div> 57 <table></table> 58 <!--div>div>div>div^^table--> 59 <div> 60 <div> 61 <div> 62 <div></div> 63 </div> 64 </div> 65 <table></table> 66 </div> 67 68 <!-- 69 5、Emmet中的重复 和变量 70 *:重复 71 $:变量 72 $符号可以写多位,如果是两个$$,表示从01开始, 73 如果是$$$,表示从001开始 74 --> 75 <div></div> 76 <div></div> 77 <div></div> 78 <!--div.div$*3--> 79 <div class="div1"></div> 80 <div class="div2"></div> 81 <div class="div3"></div> 82 <!--div.div$$*3--> 83 <div class="div01"></div> 84 <div class="div02"></div> 85 <div class="div03"></div> 86 87 <!-- 88 6、分组:英文状态下的括号来表示的 89 --> 90 <!--(div+ul)*3--> 91 <div></div> 92 <ul></ul> 93 <div></div> 94 <ul></ul> 95 <div></div> 96 <ul></ul> 97 <!--(div>dl>(dt+dd)*3)+footer>p--> 98 <div> 99 <dl> 100 <dt></dt> 101 <dd></dd> 102 <dt></dt> 103 <dd></dd> 104 <dt></dt> 105 <dd></dd> 106 </dl> 107 </div> 108 <footer> 109 <p></p> 110 </footer> 111 112 <!-- 113 7、属性:[] 114 如果有多个属性,多个属性也是要写在一个中括号里面的,中间用空格隔开 115 --> 116 a[href='https://fanrenyi.com'] 117 <a href="https://fanrenyi.com"></a> 118 a[href='https://fanrenyi.com' title='fry'] 119 <a href="https://fanrenyi.com" title="fry"></a> 120 <a href="https://fanrenyi.com" title="fry"></a> 121 122 <!-- 123 8、标签里面的文字:英文状态下的 大括号 {} 124 {}也是可以和$符号以及乘号配合使用 125 --> 126 div{123} 127 <div>123</div> 128 div{我是第$$个div}*3 129 <div>我是第01个div</div> 130 <div>我是第02个div</div> 131 <div>我是第03个div</div> 132 133 <!-- 134 9、隐式标签 135 a、就是如果在最外面,如果没有写标签名,默认就是div 136 例如.test 137 b、子标签默认已知的情况下 138 ul>.test$*3 比如ul(ol)下面只能是li 139 table,tbody,thead,tfoot下面的tr 140 select(optgrout)下面的option标签 141 tr下面的td 142 --> 143 <div class="test"></div> 144 <!--ul>.test--> 145 <ul> 146 <li class="test"></li> 147 </ul> 148 ul>.test$*3 149 <ul> 150 <li class="test1"></li> 151 <li class="test2"></li> 152 <li class="test3"></li> 153 </ul> 154 <table> 155 <tr class="test"></tr> 156 <tr> 157 <td class="test"></td> 158 <td class="test"></td> 159 <td class="test"></td> 160 </tr> 161 </table> 162 <select name="" id=""> 163 <option value="" class="test"></option> 164 </select> 165 </body> 166 </html>