- 新特性
HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定。
HTML5的设计目的是为了在移动设备上支持多媒体。
用于绘画的 canvas 元素
用于多媒体回放的video和audio元素
对本地离线存储的更好的支持
新的特殊内容元素,比如 article、footer、header、nav、section
新的表单控件,比如 calendar、date、time、email、url、search - 语义化标签是什么
- <article>定义页面独立的内容区域
- <aside>定义页面的侧边栏内容
- <dbi>设置一段文本,脱离其父元素的文本方向
- <command>定义命令按钮,比如单选、复选框
- <details>用于描述文档或文档的某个部分的细节
- <dialog>定义对话框,比如提示框
- <summary>标签包含details元素的标题
- <figure>规定独立的流内容(图像、图表、照片)
- <figcaption>figure元素的标题
- <footer>定义section或document的页脚
- <header>定义文档的头部区域
- <mark>定义带有记号的文本
- <meter>定义度量衡。仅用于已知最大值和最小值的度量衡
- <nav>定义导航链接的部分
- <progress>定义任何类型的任务的进度
- <ruby>定义ruby注释
- <rt>定义字符的解释或发音
- <rp>在ruby注释中使用,定义不支持ruby元素的浏览器所显示的内容
- <section>定义文档中的节
- <time>定义日期或时间
- <wbr>规定在文本中的何处适合添加换行符
为什么有语义化标签
在很久很久以前,前端开发者们设计网页布局时,使用的是table布局。将每一块的内容都是当作单元格处理。所有页面都相当于一个大表格。
但是,这样的布局不够灵活,而且table元素有很多问题,比如margin失效。
这时,CSS出现了,人们开始使用它设置页面样式。同时DIV元素在配合CSS上的优势也被人们发现。这时候大家都开始使用DIV+CSS开发前端页面。
但是,这样还是有问题:div的语义不明。1
2
3
4<div>
<div>标题</div>
<div>内容</div>
</div>看着上面的例子,我们来讲个故事:有一天小明出门,看到一棵树,树上什么也没有,小明觉得这棵树很碍事,反正也没果子留着没什么用,就砍掉了。结果这棵树是王母娘娘的蟠桃树,三千年才开花,三千年结果,三千年成熟,小明一个凡人,自然不懂这棵树的价值,酿成大祸。
于是呢,管理蟠桃园的人就在每棵蟠桃树上挂了个牌子,上书“蟠桃树”三个大字,经过这样的处理后,下次经过蟠桃树的小明就不会随手砍树了。不过这就有了一个问题,蟠桃树跟别的树比起来,除了多块牌子并没有什么区别。蟠桃树就抱怨了,我本来是一棵高贵的神树,怎么能跟一般的树一样?
于是,王母娘娘请来擅长园艺的神仙,对蟠桃树进行修剪,从本质上就对蟠桃树进行了区分。这样从远处一看,就能分辨出蟠桃树和一般的树。使用div标签也是一样的道理,开发者们分不清这个div与那个div之间的作用与区别,自然很容易误删节点。意识到这个问题后,人们开始使用节点的某一属性标记div节点,比如class属性:
<div class="container"> <div class="header"> <div class="article"> </div> </div> </div>
但是,这样又让人觉得CSS和HTML的耦合性太高。原本文档结构是你HTML负责的,凭什么要我CSS来帮你?HTML也很委屈,我本来设计缺陷没有办法,要怪就怪设计我的人吧。
所幸,标准制定者也知道这个缺点,于是提出来这些语义化标签,解放了CSS,降低了耦合度,从本质上就对这些标签进行了区分。
html5的新特性和语义化标签
- 本文链接: https://whiteyin.github.io/2017/11/09/html5的新特性和语义化标签/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!