为什么HTML5具有跨平台特性,而HTML4不能跨平台?

HTML5的优势在于它鼓励一些跨平台的解决方案。

比如图片的变形,微软IE有一个过滤器来实现,过滤器也支持一些基于语义的指令,也支持使用DirectX兼容的COM控件来处理图片。但是DirectX和COM不是跨平台的,所以不可能有这个API的干净的跨平台实现。

HTML5的热点Canvas在老IE上也有类似的功能,叫做vml,但它是基于一套微软专有代码实现的,至少其他浏览器无意支持。

以前HTML4时代没有视频标签。使用WindowsMediaPlayer的Flash或ActiveX控件插入视频。ActiveX是不跨平台的,Flash尝试进入移动平台多年后依然收效有限,所以即使过去不是急需,现在看来Flash也不是跨平台的解决方案。

其实很多跨平台的需求并不是不能实现,只是浏览器实现者害怕投入产出比不合理或者被现有的实现/专利绑架。比如webSQL,即使sqlite是一组公共域代码,Mozilla基金会和微软都担心未来这个项目的发展会导致sqlite对Web的内容产生影响,所以这个WebSQL计划搁浅了。