如何写出更优HTML
工具层
Emmet
安装
现代IDE
如webstorm
、vscode
等,通常支持emmet
语法
生成HTML
根据id
或类名生成标签
1 | #page>div.logo+ul#navigation>li*5>a{item $} |
最后敲一下tab
,webstorm
中的生成结果
1 | <div id="page"> |
emmet
默认生成的标签为div
,生成id
为page
的div
标签
1 | div#page |
或者
1 | #page |
编写class
为content
的p
标签
1 | p.content |
同时指定id
为navigation
和class
为nav
的ul
标签
1 | ul#navigation.nav |
兄弟标签:+
1 | div+ul+bq |
结果:
1 | <div></div> |
后代标签:>
1 | div.nav>ul>li |
结果:
1 | <div class="nav"> |
上级元素:^
上级元素(climb-up
)是什么意思呢?
在上例中,如果继续写下去,后续内容都是在li
标签下的,如果想和ul
平级,需要使用^
提升一个层次
1 | div.nav>ul>li^span |
结果:
1 | <div class="nav"> |
注意:层级提升支持多次
重复多份:*
特别是无序列表,ul
下肯定不止一个li
1 | ul>li*5 |
结果
1 | <ul> |
分组:()
用括号进行分组,表示一个代码块,分组内部的嵌套和层级关系,与分组外部无关
1 | div>(header>ul>li*2>a)+footer>p |
结果:
1 | <div> |
如果不加分组:
1 | div>header>ul>li*2>a+footer>p |
结果:
1 | <div> |
属性:[]
1 | a[href='https://mindcons.cn' title="sai's blog"] |
结果:
1 | <a href="https://mindcons.cn" title="sai's blog"></a> |
也可以生成一些自定义属性:
1 | div[data-title='title' data-content='content'] |
结果:
1 | <div data-title="title" data-content="content"></div> |
编号:$
$
表示一位数字,只出现一个的话,就从1开始,如果出现多个,就从0开始
1 | ul>li.item$*5 |
结果:
1 | <ul> |
如果想生成三位数,就要写三次$
1 | ul>li.item$$$*5 |
结果:
1 | <ul> |
可以在$
后增加@-
实现倒序
1 | ul>li.item$@-*5 |
结果:
1 | <ul> |
在$
后增加@N
指定开始的序号
1 | ul>li.item$@3*5 |
结果:
1 | <ul> |
文本内容:{}
生成超链接一般要加上可点击的文本内容
1 | a[href='https://mindcons.cn' title="sai's blog"]{点击这里} |
结果:
1 | <a href="https://mindcons.cn" title="sai's blog">点击这里</a> |
隐式标签
隐式标签表示emmet
可以省略某些标签名
例如:声明一个带类的div
,只需要输入.item
另外,emmet
还会根据父标签进行判定,例如ul>.item$*5
一样可以生成正确的结构
列出所有隐式标签名称:
1 | li: 用于ul和ol中 |
所有的书写,不要有空格
生成CSS
参考链接:https://wenku.baidu.com/view/3902e24f26c52cc58bd63186bceb19e8b8f6ecf7.html
生成长文本
html
中输入lorem
或者lipsum
,即可生成长文本
还可以指定文字的个数:lorem10
常用HTML
结构指令
html:5
或!
,快速生成HTML5
骨架结构(最后敲一下tab
键)
代码层
HTML
的语义化
如果很强烈考虑兼容 IE
的话,那么本章节不太适合学习🐶。
参考链接:
- https://juejin.cn/search?query=%E8%AF%AD%E4%B9%89%E5%8C%96
- https://juejin.cn/post/6990572224637992996
资源层
- 使用图片精灵(精灵图)
- 一张图上有多个小图(为什么叫图片精灵呢?那些小图片都是精灵,一个一个蹦出来的,所以叫图片精灵)
- 这样就只会加载一张图片了。因为减少请求次数,页面加载会快一些
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 吕小布の博客!
评论