HTML5是基于各种各样的理念(在WHATWG规范中有详述)进行设计的这些设计理念体现了对可能性和可行性的新认识
? 兼容性
? 实用性
? 互通性
? 通用访问性
兼容性和存在即合理
别担心HTML并不是颠覆性的革新相反实际上HTML的一个核心理念就是保持一切新特性平滑过渡一旦浏览器不支持HTML的某项功能针对功能的备选行为就会悄悄进行再说互联网上有些HTML文档已经存在多年了因此支持所有现存HTML文档是非常重要的
HTML的研究者们还花费了大量的精力来研究通用行为比如Google分析了上百万的页面从中分析出了DIV标签的通用ID名称并且发现其重复量很大例如很多开发人员使用DIV id=header来标记页眉区域HTML不就是要解决实际问题吗?那何不直接添加一个
尽管HTML标准的一些特性非常具有革命性但是HTML旨在进化而非革命毕竟没有从头再来的必要(就算有必要的话也不应该是HTML起码也要发明一个更好的!)
效率和用户优先
HTML规范是基于用户优先准则编写的其宗旨是用户即上帝这意味着在遇到无法解决的冲突时规范会把用户放到第一位其次是页面作者再次是实现者(或浏览器)接着是规范制定者(WC/WHATWG)最后才考虑理论的纯粹性因此HTML的绝大部分是实用的只是有些情况下还不够完美
看看这个示例下面的几种代码写法在HTML中都能被识别
id=prohtml
id=prohtml
ID=prohtml
当然肯定会有人反对这种不严格的语法我们不去辩论对错只去关心一个底线那就是最终用户其实并不在乎代码怎么写当然我们并不提倡入门者一开始写代码就这么不严谨毕竟归根结底受害者还是最终用户因为一旦由于开发人员的原因造成页面错误导致不能正常显示那么被折磨的肯定是最终用户
HTML也衍生出了XHTML(可通过XML工具生成有效的HTML代码)HTML和XHTML两种版本的代码经过序列化应该可以生成近乎一样的DOM树显然XHTML的验证规则严格得多刚才示例中后两行代码是无法通过验证的
安全机制的设计
为保证HTML足够安全HTML在设计时就做了大量的工作规范中的各个部分都有专门针对安全的章节并且安全是被优先考虑的HTML引入了一种新的基于来源的安全模型该模型不仅易用而且对各种不同的API都通用这个安全模型可以让我们做一些以前做不到的事情不需要借助于任何所谓聪明有创意却不安全的hack就能跨域进行安全对话在这方面我们肯定不会怀念过去的好时光了
表现和内容分离
在清晰分离表现和内容方面HTML迈出了巨大的步伐HTML在所有可能的地方都努力进行了分离也包括CSS实际上HTML规范已经不支持老版本HTML的大部分表现功能了但得益于先前提到的HTML在兼容性方面的设计理念那些功能仍然能用表现和内容分离的概念也不是全新的在HTML Transitional和XHTML 中就已经开始用了Web设计者把这个概念当做最佳实践使用了很久不过现在清晰地分开表现和内容显得更为重要否则会有如下弊端
? 可访问性差
? 不必要的复杂度(所有样式代码都放在页面中代码可读性很差)
? 文件变大(样式内容越多文件越大)带来的后果就是页面载入变慢
化繁为简
HTML要的就是简单避免不必要的复杂性HTML的口号是简单至上尽可能简化因此HTML做了以下这些改进
? 以浏览器原生能力替代复杂的JavaScript代码
? 新的简化的DOCTYPE
? 新的简化的字符集声明
? 简单而强大的HTML API
随后我们将详细讲解这些改进
为了实现所有的这些简化操作HTML规范已经变得非常大因为它需要精确再精确实际上要比以往任何版本的HTML规范都要精确为了达到在年能够真正实现浏览器互通的目标HTML规范制订了一系列定义明确的行为任何歧义和含糊都可能延缓这一目标的实现
另外HTML规范比以往的任何版本都要详细为的是避免造成误解HTML规范的目标是完全彻底地给出定义特别是对Web应用所以也难怪整个规范超过了页!
基于多种改进过的强大的错误处理方案HTML具备了良好的错误处理机制非常有现实意义的一点是HTML提倡重大错误的平缓恢复再次把最终用户的利益放在了第一位比如如果页面中有错误的话在以前可能会影响整个页面的显示而HTML不会出现这种情况取而代之的是以标准方式显示broken标记这要归功于HTML中精确定义的错误恢复机制
通用访问
这个原则可以分成三个概念
? 可访问性出于对残障用户的考虑HTML与WAI(Web Accessibility InitiativeWeb可访问性倡议)和ARIA(Accessible Rich Internet Applicaions可访问的富Internet应用)做到了紧密结合WAIARIA中以屏幕阅读器为基础的元素已经被添加到HTML中
? 媒体中立如果可能的话HTML的功能在所有不同的设备和平台上应该都能正常运行
? 支持所有语种例如新的元素支持在东亚页面排版中会用到的Ruby注释
以上就是我们给大家介绍的HTML5了。希望大家继续关注我们的网站!