也许会有人问:“HTML4已经很普及了,如果改变基础语法,会不会有什么影响?”
我们都知道,在HMTL5之前几乎没有符合标准规范的Webu浏览器!在这种情况下,各个浏览器之间的互相兼容性和互操作性在很大程度上取决于网站建设开发者的努力,而浏览器本身始终是存在缺陷的。
前面章节讲过,HTML5就是把解决各Web浏览器的兼容性作为目标的。所以各Web浏览器的供应商们可以把HTML5分析器集中封装在自己的浏览器中。
最新的Firefox(默认为4.0以后的版本)与WebKit浏览器引擎中都迅速封装了HTML使用的分析器,IE与Opera也在努力加快对HTML5的支持,浏览器兼容性的提高指日可待!
HTML5的语法发生了一些变化,这些变化的最大特征就是:HTML5更宽容了!HTML5规范的设计初衷就是最大限度地“兼容”互联网上随处可见的不规范页面。
归纳起来,HTML5存在如下几点语法变化:
a:标签不在区分大小写
<p>Rodolfo讲述H5</P>中<p.../>元素的开始比爱哦前和结束标签的大小写并不匹配,但这完全符合HTML5规范。
b:元素可以省略结束标签
HTML5显得十分宽容,它允许部分HTML元素省略结束标签,甚至允许HTML元素同时省略开始标签和结束标签。具体来说,HTML5中的省略标签可分为如下三种:
(1)空元素语法的元素:area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、war。
空元素不允许将开始标签和结束标签分开定义。例如,<img.../>元素不允许写成如下形式:
<img src=“a.gif” alt=“a”></img> (这是错误的)
<img…/>元素应该是空元素,应该写成:
<img sec=“a.gif” alt=“a” />
与此同时,HTML5并不要求遵守XML规范,因此<img.../>元素写成如下形式也是正确的:
<img src=“a.gif” alt=“a">
(2)可以省略结束标签的元素:
colgroup、dt、dd、li、optgroup、option、p、rt、rp、thead、tbody、tfoot、tr、td、th。
(3)可以省略全部标签的元素:html、head、body、tbody。
c:允许省略属性值的属性
HTML5中允许省略属性值的属性:
checked、readonly、disabled、selected、defer、ismap、nohref、noshade、nowrap、multiple、noresize。
d:允许属性值不使用引号
传统的XHTML按XML规范对属性值进行要求,要求所有的属性值都必须使用引号引起来,但HTML5允许直接给出顺序性质,及时不放在引号中也是正确的。
扩展知识:
HTML语法是在SGML语言的基础上建立的。但是SGML语法很复杂,要开发能够解析SGML语法的程序也很不容易,所以很多浏览器都不包含SGML 分析器。一次,虽然HTML基本上遵从SGML语法,但是对于HTML的执行在各个浏览器之前没有一个统一的标准。所以也就有了HTML5为之努力实现各 浏览器见的标准。
SGML(Standard Generalized Markup Language)标准通用标记语言,是现时常用的超文本格式的最高层次标准,是可以定义标记语言的元语言,甚至可以定义不必采用< >的常规方式。由于SGML的复杂,因而难以普及。
SGML例子:
<QUOTE TYPE="example">
typically something like <ITALICS>this</ITALICS>
</QUOTE>