这是一篇介绍Emmet的文章,Emmet是专为我们前端开发人员设计的一个工具,可以大大提高您的html和css工开发效率。可以说是前端开发的神器之一
作为一个前端,你肯知道在前端开发的过程中,一大部分的工作是写 HTML、CSS 代码。特别是手动编写 HTML 代码的时候,效率会特别低下,因为需要敲打很多尖括号,而且很多标签都需要闭合标签等。于是,就有了 Emmet(前身为 Zen Coding)。(当然这是以前的情况,现在作为一个合格的现代编辑器多多少少都集成了代码自动提示,自动补全等功能)。
它作为一款强大的插件支持了许多编辑器与IDE,什么vscode,sublime,atom,webstorm等等都支持你可以直接在你的编辑器插件中搜索安装,一些已自带集成
我们先来看看官网的示例
#page>div.logo+ul#nav>li*5>a{Item $}
在我们用了emmet后 一个 tap 就会生成下面这一大段。酷不酷炫,炫不炫酷
<div id="page">
<div></div>
<ul id="nav">
<li><a href="">Item 1</a></li>
<li><a href="">Item 2</a></li>
<li><a href="">Item 3</a></li>
<li><a href="">Item 4</a></li>
<li><a href="">Item 5</a></li>
</ul>
</div>
下面我们直接贴代码来看每一个语法的使用希望你在看完就会。
标签
div ⟹ <div></div>
foo ⟹ <foo></foo>
同时Emmet 还采用了css 的元素选择器
后代: >
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>
乘法:*
ul>li*5 ⟹
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
分组:()
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>
ID 和 CLASS
div#header+div.page+div#footer.class1.class2.class3
⟹
<div id="header"></div>
<div></div>
<div id="footer"></div>
自定义属性
td[title="Hello world!" colspan=3] ⟹
<td title="Hello world!" colspan="3"></td>
自增符号:$
ul>li.item$*5 ⟹
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
改变自增基数和方向:@
ul>li.item$@-*5 ⟹
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
ul>li.item$@3*5 ⟹
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
文本:{}
a[#]{Click me} ⟹
<a href="#">Click me</a>
Lorem Ipsum(乱数假文):lorem
lorem ⟹
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique impedit quaeiure quos itaque, deserunt dolore in consequatur veniam cumque, est voluptatibus minima, velit culpa, reprehenderit aspernatur iste facilis. Rerum!
哈哈哈,真棒只要五个字母一个tap家可以生成这么大一段站位文字。
ok,差不多这就Emmet 语法的全部了。除了上面的简写形式,Emmet对css也提供有一些简写,下面我们就来看看
css属性
m ⟹ margin:
fz ⟹ font-size:
……
其实这些属性简写都不需要特意去记,你只组要按着你的思路来猜这个属性的简写就好了。
属性值
m10 ⟹ margin: 10px;
mt10 ⟹ margin-top: 10px;
……
多个属性值:对于有多个属性值的CSS属性,在编写时只需在属性值之间添加-:
m4-6 ⟹ margin: 4px 6px;
Emmet默认单位为px,如果你想使用其他单位就继续看下面吧
单位
在Emmet中每一个单位都有其缩写形式(当然了你记不住也没关系,直接按全就好)
p → %
e → em
r→ rem
x → ex
w100p ⟹ width: 100%
m10p30e5x ⟹ margin: 10% 30em 5ex
在这儿,我们大致了解了下Emmet这个神器,学会了基本的使用,关于Emmet的简写,不需要刻意去记忆,因为他的简写方式都很直观,你直接猜也能写对,写不对也没关系,去官网看看就好了(建议有时间还是粗略的看一些文档)emmet能大大提高我们编码效率,还没用的赶快用起来吧。
一般程序员都会了解,类似于 IO、网络请求等都应该是 异步 的。在Dart中,我们使用 Future 来管理,这样就不用担心线程或者死锁的问题,那么当 Flutter 涉及到 Future 的时候,widget 该如何去构建呢?
sql2go用于将 sql 语句转换为 golang 的 struct. 使用 ddl 语句即可。例如对于创建表的语句: show create table xxx. 将输出的语句,直接粘贴进去就行。toml2go用于将编码后的 toml 文本转换问 golang 的 struct.
接口调试是每一个软件开发从业者必不可少的一项技能,一个项目的完成必然经过大量的接口测试,实际开发过程中,接口调试的时间不比实际开发所用的时间少。作为前端开发人员
ES5的回调使我们陷入地狱,ES6的Promise使我们脱离魔障,终于、ES7的async-await带我们走向光明。今天就来学习一下 async-await。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!