X/HTML5 和 XHTML2


Posted in HTML / CSS onOctober 17, 2008

在了解了XHTML 2的进展之后,我们再来看看X/HTML 5 的进展。
X/HTML 5酷在什么地方
章节元素的构想
X/HTML 5引入新的元素用于把Web页面分成若干章节。这些组成部分有助于搜索引擎和辅助工具更好地理解页面内容。使用这些新元素可以使标签更具可读性。
章节化内容的构想很酷!但是请看一下为什么使用章节的技术不够酷。
对话元素
对话元素用来表示一段交谈。它包括一个用于定义会话者的dt元素和代表会话者讲话内容的dd元素。例如:
<dialog>
<dt>Costello</dt>
<dd>Look, you gotta first baseman?</dd>
<dt>Abbott</dt>
<dd>Certainly.</dd>
<dt>Costello</dt>
<dd>Who's playing first?</dd>
<dt>Abbott</dt>
<dd>That's right.</dd>
<dt>Costello</dt>
<dd>When you pay off the first baseman every month, who gets the money?</dd>
<dt>Abbott</dt>
<dd>Every dollar of it.</dd>
</dialog>
figrue元素
在印刷发行(教科书、报纸、杂志等)媒体对象(照片、插图、图表等)中经常会使用到标头。到目前为止,Web标记语言还没有可以产生这种效果的结构。figrue元素有一个legend子元素可以用来指定图像的标头。例如:
XML/HTML代码
<figure>
<legend>Credit: Media Inc., 2007</legend>
<img src="smith.jpg" alt="Photo: J. Smith" />
</figure>
m元素
m元素代表一段文本被标记或者是高亮。这在动态网页中显示搜索关键字时候非常有用,此时页面中的关键字就可以使用m元素来标出来了。例如,响应用户搜索的关键字snow时,Web页面可以生成下面这样一段内容:
XML/HTML代码
<p>A <m>snow</m>man is a man-like sculpture constructed out of <m>snow</m>.</p>
input元素得到加强
input元素功能加强之后可以支持email、url、数据相关、时间相关、和数字等数据类型。这就意味着更加的验证功能可以在客户端完成了。
开放的进程
X/HTML的开发进程比XHTML 2开放得多。每个人都可以参与到X/HTML 5创意明细中。
X/HTML 5的美中不足
章节元素的使用
采用章节元素的的想法是好的,但是X/HTML 5的应用中显得有点累赘。甚至有些解释会让你更加困惑。例如:
aside元素表示组成页面内容的一个部分,它和aside元素前后的内容相关联,它可以被看作是内容中独立的部分。这些组成部分经常用于印刷技术中的侧连栏。
难道拥有role属性的div元素不加具有扩展性和更容易被理解?
另外一个被提及的章节元素是nav,用于表示页面中链接其它页面的链接。我们真的需要nav元素吗?XHTML 2中的nl元素可以更好地完成这个任务。
HTML 4和XHTML 1中的不足在未来的规范中还将存在
因为X/HTML试图提供向后支持,HTML 4和XHTML 1中的不足将还会在X/HTML 5中存在。规范不必向后当空,相反应该客户端软件通过支持多种规范来提供向后兼容能力。
X/HTML 5没有遵循X/HTML 5手册
X/HTML 5旨在向后兼容HTML 4和XHTML 1。现在big、acronym、u和tt都还不是这个规范中的内容,而像i和samll等其它元素有了重新定义之后的语意。例如,在HTML 4.01规范中是这样定义i和small的:
i:使文本呈现斜体
small:以“小”字体呈现文本
在X/HTML 5中,i和small有了新的含意:
i元素用不同的方式来表现一段文本或者是与正文存在差异的段落,如分类设计、技术术语、外来语言的习惯用语、某个想法、意见、船名或者其它需要在印刷技术中呈现斜体的文本。。
small元素呈现的是小的打印字体(文档中具有说明法律约束作用的部分,如版权或者存在的弊端)和批注等。
通过重新定义i和small的含义,这破坏了对HTML 4和XHTML 1的向后兼容性。这是因为向后兼容应该意味着HTML 5的用户代理(user agent,浏览器)在呈现HTML 4的文档时应该和HTML 4的user agent保持一致。因此,如果HTML 5强调向后兼容,HTML 4中意义不大的结构在HTML 5中也同样没有多少意义。
不会吧?仍然支持font元素?
是的,如果开发者使用WYSIWYG编辑器的话, X/HTML 5依然支持font元素。这样做有什么合理性吗?难道WYSIWYG编辑器就能避免使用font吗?
WYSIWYG签名
使用WYSIWYG编辑器生成的文档必须在head元素中包含下面的WYSIWYG签名:
XML/HTML代码
<meta name="generator" content="(WYSIWYG editor)" />
或者:
XML/HTML代码
<meta name="generator" content="Sample Editor 1.0 (WYSIWYG editor)" />
这样做的理由是什么呢?某种耻辱的标记?它是不是要告诉浏览器做好最坏的准备,因为这个文档是用WYSIWYG编辑器生成的?那么,如果文档中只有一部分是使用WYSIWYG工具完成的又该怎么做呢?
支持预定义类名
预定义类名是X/HTML 5用户代理中保留的具有语意的CSS类名。下面的例子中copyright就是一个预定义的类名:
XML/HTML代码
<p class="copyright>...</p>
其它的预定义类名还有“error”、“example”、“issue”、“note”、“search”和“warning”。更麻烦的是,有些预定义类名只有在某些特定元素中使用而不能别其它元素中使用。例如,类名“copyright”只有在p和span元素中使用。类名“error”只有在p、section、span和strong中使用。
预定义类名的一个问题就是下面这样的写法没有什么意义:
XML/HTML代码
<p class="important">

而这样的写法才会有意义:
XML/HTML代码
<p class="copyright">
重写class属性变得很难去说明结构的具体含意。例如,下面的代码意味着什么呢:
XML/HTML代码
<p class="important copyright issue">
预定义类名还会限制开发者对类名使用的自由。同样,如果开发者现在使用了一个非预定义类名,但是之后某天这个类名变成预定义类,那又会首产生什么状况呢?这难道就改变了开发者之前内容的语意吗?
HTML 5 v.s. XHTML 5
在试图最终解决HTML和XHTML的争论中,X/HTML 5规范使事情变得更难于理解。的确,X/HTML 5规范中确实说“一般说来,开发者在Web中还能直接使用XML”,即使W3C一直都在为XML未来在Web中的应用不断努力。
开发过程过于匆忙
X/HTML 5是为了应对W3C在HTML 4和XHTML 1更新换代中的拖沓。因此,这导致X/HTML 5的开发过程有点匆忙,感觉这个规范不知道突然从什么地方冒出来然后又快速地跟进。即使是直接参与到其中的开发者也感到规范的开发进程有点不切实际。
下一代标记语言的竞争
X/HTML 5和XHTML 2都在为能够替代HTML 4和XHTML 1展开竞争。即时是在开发的前期,一些浏览器的供应商就已经声称他们对这两种规范的偏好。由于审议的紧迫性和封闭性,这使得Web标准组织出现了两极分化。随着两种规范的进展,更多的开发资源和市场资金将会投入到其中的某一个中,所有的这些因素都会引起一场“标准的”战争。
我们每一个人都是这个标准的制定者,因为Web属于每一个人,只有一场诚实、公开的争论才能保证最好的标准成为赢家。
注:为阅读方便文章中把“HTML 4.x/XHTML 1.x”简写为“HTML 4 and XHTML 1”
原文连接:http://www.dudo.org/article.asp?id=249

HTML / CSS 相关文章推荐
CSS3 选择器 属性选择器介绍
Jan 21 HTML / CSS
基于DOM+CSS3实现OrgChart组织结构图插件
Mar 02 HTML / CSS
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
Dec 20 HTML / CSS
谈谈对css属性box-sizing的了解
Jan 04 HTML / CSS
CSS3实现全景图特效示例代码
Mar 26 HTML / CSS
css3 column实现卡片瀑布流布局的示例代码
Jun 22 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
Jul 16 HTML / CSS
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
Jan 30 HTML / CSS
实例讲解使用SVG制作loading加载动画的方法
Apr 05 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
Jul 31 HTML / CSS
css 中多种边框的实现小窍门
Apr 07 HTML / CSS
HTML基础详解(下)
Oct 16 HTML / CSS
HTML5: Web 标准最巨大的飞跃
Oct 17 #HTML / CSS
详解Html5中video标签那些属性和方法
Jul 01 #HTML / CSS
HTML5之多线程(Web Worker)
Jan 02 #HTML / CSS
浅谈pc和移动端的响应式的使用
Jan 03 #HTML / CSS
canvas绘制文本内容自动换行的实现代码
Jan 14 #HTML / CSS
详解通过变换矩阵实现canvas的缩放功能
Jan 14 #HTML / CSS
html Table 表头固定的实现
Jan 22 #HTML / CSS
You might like
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
Javascript----文件操作
2007/01/18 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
2015/10/30 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python3.0 字典key排序
2008/12/24 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
python一键升级所有pip package的方法
2017/01/16 Python
Python判断一个三位数是否为水仙花数的示例
2018/11/13 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
教师求职信范文分享
2013/12/27 职场文书
校运会口号
2014/06/18 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
团队执行力培训心得体会
2015/08/15 职场文书