解决跨浏览器问题

  对于有过实际开发经验的前端程序员来说,跨浏览器问题绝对是一个永恒的“噩梦”:明明在一个浏览器中可以正常运行的HTML+CSS+JavaScript页面,但换一个浏览器之后,可能会出现很多问题,比如页面布局混乱、JavaScript运行出错……因此很多前端程序员在开发HTML+CSS+JavaScript页面时,往往会先判断对方浏览器,然后根据对方浏览器编写不同的页面代码
  在HTML 5以前,各浏览器对HTML、JavaScript的支持很不统一,这样就造成了同一个页面在不同浏览器中的表现不同。HTML 5的目标是详细分析各浏览器所具有的功能,并以此为基础制订一个通用规范,并要求各浏览器能支持这个通用标准

部分代替了原来的JavaScript

  HTML 5增加了一些非常实用的功能,这些功能可以部分代替JavaScript,而这些功能只要通过为标签增加一些属性即可
  例如,打开一个页面后立即让某个单行文本框获得输入焦点,在HTML 5以前,可能需要通过JavaScript来实现。

<body>  
图书:<input type="text" name="book" id="name"/><br/>
价格:<input type="text" name="price" id="price"/>
<script type="text/javascript">  
    document.getElementById("price").focus();
</script>  
</body>  

  上面的页面片段通过JavaScript代码来完成这个功能,但在HTML 5中则只需要设置一个属性即可

<body>  
图书:<input type=text name=book/><br/>
价格:<input type=text autofocus name=price/>
</body>  

  除了这里示范的autofocus可用于自动获得焦点之外,HTML 5还支持其他一些属性,比如一些输入校验的属性

更明确的语义支持

  在HTML 5以前,如果要表达一个文档结构,可能只能通过<div.../>元素来实现,HTML 5则为上面的页面布局提供了更明确的语义元素。

<nav></nav>  
<article>  
<section>  
</section>  
</article>  

增强了Web应用程序的功能

  一直以来,HTML页面的功能被死死地限制着:客户端从服务器下载HTML页面数据,浏览器负责呈现这些HTML页面数据。出于对客户机安全性的考虑,以前的HTML在安全性方面确实做得足够安全。
  当HTML页面做得太安全之后,于是我们就需要通过JavaScript等其他方式来增加HTML的功能。换句话来说,HTML对Web程序而言功能太单薄了,比如上传文件时想同时选择多个文件都不行(前端开发者不得不通过Flash、JavaScript等各种技术来克服这个困难),为了弥补这种不足,HTML 5规范增加了不少新的API,而各种浏览器正在努力实现这些API功能,在未来的日子里,使用HTML 5开发Web应用将会更加轻松。

注:本博客内容节选自李刚编著的疯狂HTML 5/CSS 3/JavaScript讲义 ,详细内容请参阅书籍。