HTML5是什么

HTML5是HTML的最新版本,且与原有版本有很大的改动。这些改动的目的是将许多开发人员在使用的新方法标准化,也是为了鼓励一种web开发的最佳做法。

大多数单独特性的变化是语言整体设计目标的结果。这些目标主要包括:

  1. 鼓励使用语义化标签
  2. 样式设计与内容相分离
  3. 推广辅助功能以及响应式设计
  4. 减少HTML,CSS,JavaScript之间的重叠
  5. 在消除Flash或java这样的插件的同时,支持丰富的媒体功能

掌握HTML5不止意味着学习CSS特性代替老的HTML特性。如果你想对HTML5有一个直观的感受,最好要理解这些目标如何影响HTML这门语言的发展。

使用语义化标签

语义化标签意味着标签可以见文知意,而不是看上去都一样。例如,h1 表示标签内部是标题,如果我们只是将内部文字加粗加大,就没有做到语义化。

HTML中早已有一些语义化的标签,例如h1标签、a标签等,但这还不够。

在以前的版本中,像页头和导航栏这样的结构元素都用div元素表示,现在我们引入了新的语义化标签:

<header>
<nav>
<main>
<article>
<aside>
<section>
<footer>

也有一些表示文章层次的新标签,例如addresstime标签,这些帮助搜索引擎和其他人轻松的从页面中搜寻信息。同时,对于已有元素的形如bolditalic的属性也被改进或重新定义以达到语义化

样式设计与内容相分离

在鼓励语义化标签的同时,HTML5规范强烈反对无语义的语法——那些只告诉浏览器如何解析的语法,例如

  • 声明字体大小和文本颜色
  • 设置文本水平和垂直对齐方式
  • 设置table的border
  • 定义文本或图片如何换行

大多数支持这些做法的HTML特性已经过时了,少数目前还支持的特性会带来警告:这是不支持的操作

进行分离的原因主要有两点:

  • 将样式写在CSS中会让网站更易维护或是重新设计
  • 用户通过各种不同的设备访问网站。在某一场景下适用的样式和设计在另一场景下不一定适用,所以更好的做法是提供语义化信息并让内容适应上下文

最后一个原因是:推广辅助功能以及响应式设计

不是每个人都和你一样浏览网站

台式电脑、笔记本、手机、平板电脑等典型设备的屏幕宽度、屏幕宽高比、显示器分辨率以及用户的操作体验等方面都有很大的不同,这种差异性应该足以显示语义化和响应式设计的重要性。并且,不是所有用户都是普通人。那些视力障碍的残疾人也会利用各种辅助技术上网。而他们利用的种种设备诸如将网页内容转换为语音的屏幕阅读器等,依赖于语义化的标签和样式设计

减少HTML,CSS,JavaScript之间的重叠

这三种语言决定了前端web页面

人们上网时不会研究哪些内容是用哪种语言完成的,它们是彼此平行的,且功能经常重叠。

除了上面列举的实际考虑,人们也想要定义这三种语言的边界并限制它们做自己分内的事:

  • HTML — 内容
  • CSS — 样式
  • JS — 交互逻辑

牢记这一点可以帮助你决定使用哪种语言,尤其是在不止有一种选择的时候。例如当你想改变某个元素的颜色时,你应该首先考虑使用CSS,而当这种改变是基于用户的交互时,你就应该使用JavaScript了

在消除Flash或java这样的插件的同时,支持丰富的媒体功能
随着带宽和网速的提升,我们越来越倾向于将互联网作为一个多媒体平台。HTML当初是为那种文字为主,或许有少许图片但没有丰富的音频或视频的文档创造的。

当人们初次将这些多媒体功能加入到web页面中时,需要用户下载特定的浏览器插件。这样的使用体验很差,限制了用户的操作,并留下了安全隐患。这种做法要求程序员用诸如Flash和java的语言来写web页面的一些核心交互逻辑,并且这些内容对搜索引擎和使用屏幕阅读器的残疾人都是不可见的。这是一种缺陷

现在,HTML5提供了用于多媒体的标签:

  • video用于定义视频
  • audio用于定义音频
  • canvas用于定义图形,如图表或其他图像。

ps:canvas标签只是容器,图形要通过JS脚本来绘制

我们为什么要用HTML5

最直接的回答是:这是HTML当前最新的“正确”版本。

但有些人并不能被这种说法说服。旧式写法仍然被大多数浏览器支持,为什么不就这样写呢?这样更简单啊

下面是一系列使用HTML5而不是已过时语法的理由,有些是出于实际,有些是出于理念。有些是利他的,有些是利己的:

  • 更易书写
  • 更易维护
  • 更易重塑
  • 在搜索引擎中有更好的表现
  • 对于残障人士更友好
  • 有利于内容整合并提供给用户
  • 对移动端用户更友好
  • 对网速慢的用户更友好
  • 更少的影响设计
  • 更易添加多媒体功能
  • 更易制作交互式应用
  • 过时的语法将会被停止支持,将会影响你的网页

如何使用HTML5 避免过时语法

点击链接可以查看过时语法,并且可以查看它们被抛弃的原因以及如何用新的标准语法来代替

不过,你不需要记住这个清单中所有的语法,你只需要记住,当你要改变页面中元素的外观时,你不该使用HTML,几乎所有用于改变外观的HTML特性都已经过时了,留下的那部分也只适用于特定场合。

学会使用新语法

有时候,如果你不知道有些东西是可用的,你就不会想着去用它。例如,如果你不知道video标签,你也许就不知道如何简单的将视频加载到页面中。

所以,你可以点此链接查看现代浏览器支持的新语法,来了解有哪些可用的方法。

习惯使用CSS

很多过时的语法都是用于改变样式的,而这现在是CSS的职责。如果你想做一个现代前端开发者,你应该熟练使用CSS

用进行声明

所有HTML5文档都要以该标签开头来指出这是支持HTML5的文档

不要闭合空标签

形如img、br、hr这样的标签,标签内部是没有内容的(对于img标签,图片是属性而不是内容),在以前版本的HTML中,img标签是这样写的< img/>,但现在不需要了,写为< img>足矣。

验证你的页面

你应该养成习惯来验证你的页面是否符合最新规范,W3C提供了标签验证服务,允许你快速检查你的页面中标签是否符合HTML5规范。