|
6#
楼主 |
发表于 24-10-2011 00:38:39
|
只看该作者
HTML5和HTML4的不同
完整的HTML5规范是涵盖了所有原HTML4的内容的, 所以, 如果是对HTML4已经非常熟悉的人来说, 不容易快速了解和掌握HTML5到底有哪些地方和HTML4不一样. 而HTML5与HTML4之区别正是解答这一问题的绝佳文档. 下面就简述一二:
HTML4成为W3C推荐标准是1997年, 与之相配套的还有用于XML序列化的XHTML 1和DOM2 API等标准. 而HTML5将为这些定义一个整体的统一标准, 包括:
1. 可以以HTML语法和XML语法编写的HTML5语言规范
2. 为促进各种实现间的互操作性定义详细的处理模型
3. 增加/改进的HTML标记
4. 为新兴的WEB应用而特别定义的标记和API等
关于向后兼容性
HTML5提供向后兼容, 虽然有些标记在HTML5时代对编写者来说建议不用, 但是对于浏览器来说, 所有的HTML4标记都必须支持, 所以, 没有什么标记真正的被HTML5标识为过时.
关于HTML5何时完工
在HTML5刚刚喧闹起来时, 有一个新闻特别引人注目,就是W3C的官员表示HTML5要到202x年才能正式完成... … 其实事情的来源是这样滴: HTML5规范对”完成”有一个比较苛刻的定义:规范中的任何一个功能都必须由两个完全独立的参考实现. 这个要求粗看一下,其实不高, 不过呢, 如果有一个众所周知的最好实现摆在那里的话, 恐怕很少有人会为了实现而实现, 单独另写一套前途未卜的东西. 一个比较典型的API就是关于SqlDatabase的, 现在应该来说所有能叫得上名字的实现HTML5的浏览器,都不约而同地选择了sqlite, 那么即使做得再好,如果到2020年前还是只有一个sqlite版的Web SqlDatabase实现, 那么从HTML5的定义上来说就是还未完成的.....这就有点搞了, 或许应该鼓励Oracle写个Oracle的Web SqlDatabase
一石激起千层浪, 此话一出,别管背景是什么, 大家那是一个议论纷纷, 玩标准的大牛们一想, 这不是个事啊, 干脆别要定义什么完成了, 也别定义版本号了, 就这么脚踩西瓜皮, 走哪算哪就好, 于是一个声明诞生了, 以后都别叫什么HTML5了, HTML5就是HTML了, 标准要与时俱进, 玩版本号这事都怪以前TOO SIMPLE, SOMETIMES NAIVE了.
HTML5语法
因为要向后兼容, 所以HTML5的语法即兼容HTML4又兼容XHTML1, 所以两种写法都行. 在此基础上HTML5规定了一些包括如何进行错误处理的解析规则.
HTML5的字符编码
基本上和HTML4差不多, 有3中设置字符编码的方式:
1. 在HTTP的头中设置Content Type
2. 在HTML文件的起始处设置Unicode的BOM标签
3. 在HTML的head中设置meta
对SVG和MathML的直接支持
在HTML5里, SVG和MathML就和普通的<h>, <p>一样和HTML语法融为一体了.
语言本身的变化
新的元素
section
article
aside
hgroup
header
footer
nav
figure
figcaption
video
audio
track
embed
mark
progress
meter
time
ruby, rt, rp
bdi
wbr
canvas
command
details
summary
datalist
keygen
output
以上有些tag的功能和用法可以一笔带过,比如section, 有些就可以长篇大论成一本书了, 比如canvas. 再次不表. 值得一提的是, input这个在HTML4中本来就常用的标签得到了极大增强, 现在input的type可以是:
原有tag的新属性
太多了.... 大部分HTML4的tag都有了更新和扩充, 捡几个比较有意思的说说:
1. draggable 和 dropzone 为dragdrop API准备的
2. spellcheck 顾名思义
3. data-* 用于用户自定义的属性, 这样可以让任何tag携带自定义信息了
4. contextmenu 为任何tag定制上下文菜单
5. contenteditable 指定tag的内容可编辑
应用编程接口
HTML5定义了很多API:
1. video, audio API
2. 用于离线web应用的API
3. 内容编辑API
4. Drag&Drop API
5. Page history API
6. 可自定义注册Web协议或媒体类型的API
等等...
对DOM的扩展
在DOM Level2的基础上, 还提供了 :
1. getElementsByClassName()
2. innerHTML
3. classList
另外, 这份文档还提供了changelog, 看看历史, 还是很有意思的, 一份规范, 是如何一步步被孕育出来的, 一目了然.
当然HTML5还有很多特别是API级别的新标准, 不过这些就和HTML4基本上没有关系了,都是全新的, 比如WebSocket, 跨文档通讯, WebStorage等等. |
评分
-
查看全部评分
|