Emmet
功能
snippet(代码片段,不如用专门的片段插件)
abbreviation expand(简写展开)
目的
只有一个,加快web开发(编码速度)
Emmet特性
简写支持嵌套
简写支持分组
简写支持乘法
简写支持自增和自减,起序,编号
解析简写代码可以用Tab键或者Ctrl+E来调用
Emmet与HTML
1.创建初始文档
只要输入!或html:5,然后点击tab键,你就会看到一个HTML5的doctype默认标签
html:5或!:HTML5文档类型
html:xt:XHTML过渡型文档类型
html:xs:XHTML严格型文档类型
html:4t:HTML4过渡型文档类型
html:4s:HTML4严格型文档类型
2.轻松添加类、id、文本和属性
连续输入元素名称和ID,Emmet会自动为你补全
使用E#ID添加ID名
使用E.class添加类名
使用E[attr]添加属性
使用E{text}添加文本
div#d1.test
<div id="d1" class="test"></div>
a#a1.test[href=#]{返回首页}
<a href="#" id="a1" class="test">返回首页</a>
3.后代> 兄弟+ 上级^
使用>运算符可以用来生成彼此嵌套的元素:
div>ul>li>a
<div>
<ul>
<li><a href=""></a></li>
</ul>
</div>
使用+运算符可以用来生成彼此相邻的元素:
h1+p+a
<h1></h1>
<p></p>
<a href=""></a>
使用^运算符,可以让你的代码返回上一层。当你使用>嵌套元素时,想让后面的回到上一层,那么这个方法很适用
div>p>a^h1
<div>
<p><a href=""></a></p>
<h1></h1>
</div>
4.乘法 *
如果你想一次性生成多个相同的元素,那么就可以使用乘法运算符
ul>li*4
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
除了能一次性生成多个相同的标签之外,我们还可以通过$符号做递增;通过$@-符号做递减;
ul>li.lie$*5
<ul>
<li class="lie1"></li>
<li class="lie2"></li>
<li class="lie3"></li>
<li class="lie4"></li>
<li class="lie5"></li>
</ul>
ul>li.lie$@3*5
<ul>
<li class="lie3"></li>
<li class="lie4"></li>
<li class="lie5"></li>
<li class="lie6"></li>
<li class="lie7"></li>
</ul>
ul>li.lie$@-3*5
<ul>
<li class="lie7"></li>
<li class="lie6"></li>
<li class="lie5"></li>
<li class="lie4"></li>
<li class="lie3"></li>
</ul>
5.组合 ()
为了更有效的利用嵌套,我们常会制作一些代码片段。在Emmet中你可以通过()将一个块组合在一起
ul>(li>a)*4
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
(ul>(li>a)*4)+(select>option*4)+p
<ul>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
<select name="" id="">
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
<p></p>
6.省略标签名
在Emmet中可以省略标签名,Emmet会根据其父标签进行判定。一般情况下都是生成div标签。
.test
<div class="test"></div>
在实际中还有一下情况
ul和 ol中输入指的是li
table、tbody、thead和tfoot指的是tr
tr中指的是td
select指的是option
例如:ul>.test
<ul>
<li class="test"></li>
</ul>
Emmet与CSS
属性值:CSS的属性,它只需要添加一个值。这是通过一个组合缩写和所需要的值一起来完成。例如,fz18将输出font-size:18px
单位:在Emmet中每一个单位都有其缩写形式:
px→ 默认
p→ %
e→ em
r→ rem
x→ ex
例如fz1e font-size:1em
多个单位:CSS中的某些属性,比如margin,允许多个值。只需要每个值之间使用(减号)-
例如:m10-20-30-40 margin: 10px 20px 30px 40px;
多个属性:可以使用加号+运算符来创建多个属性
例如:m10+p20+fz30
margin: 10px;
padding: 20px;
font-size: 30px;
Emmet定义了所有已知的CSS属性和缩写
盒模型相关
d展开为display: block;
d:n展开为display:none;
d:f展开为display:flex;
d:i展开为display:inline;
d:ib展开为display: inline-block;
fl展开为float: left;
fl:r展开为float: right;
fl:n展开为float: none;
pos展开为position:relative;
pos:a展开为position: absolute;
pos:f展开为position:fixed;
m展开为margin: ;
m:a展开为margin: auto;
mt展开为margin-top: ;
类型的还有 mt,mb,mr
p展开为padding: ;
其他和margin类型
bxz展开为box-sizing: border-box;
字体相关
f展开为font: ;
fz展开为font-size: ;
ff展开为font-family: ;
fs展开为font-style: italic;
文本相关
va展开为vertical-align: top;
va:m展开为vertical-align: middle;
ta展开为text-align: left;
ta:c展开为text-align: center;
td:n展开为text-decoration: none;
wos展开为word-spacing: ;
c展开为color: #000;
c:r展开为color: rgb(0, 0, 0);
c:ra展开为color: rgba(0, 0, 0, .5);
op展开为opacity: ;
op+展开为opacity: ;filter: alpha(opacity=);
背景
bg展开为background: #000;
bg+展开为background: #fff url() 0 0 no-repeat;
bgc展开为background-color: #fff;
bgi展开为background-image: url();
bgr展开为background-repeat: ;
bgp展开为background-position: 0 0;
bgsz展开为background-size: ;
边框和轮廓
bd展开为border: ;
bd+展开为border: 1px solid #000;
bd:n展开为border: none;
bdl展开为border-left: ;
bdl+展开为border-left: 1px solid #000;
bdrs展开为border-radius: ;
bdc:t展开为border-color: transparent;
ol展开为outline: ;
列表
lis展开为list-style: ;
lst展开为list-style-type: ;
list:n展开为list-style-type:none;
其他
!展开为!important
anim展开为animation: ;
anim-展开为animation:name duration timing-function delay iteration-count direction fill-mode;
trf展开为transform: ;
trf:r展开为transform: rotate(angle);
trf:rx展开为transform: rotateX(angle);
trf:sc展开为transform: scale(x, y);
trf:t展开为transform: translate(x, y);
trf:t3展开为transform: translate3d(tx, ty, tz);
trs展开为transition: prop time;
us展开为user-select: none;