HTML的发展史
HTML、XHTML、HTML5的区别
<!DOCTYPE>中的区别
用来指示web浏览器关于页面使用**哪个HTML版本**进行编写。正常情况我们都需要在HTML文档中添加的声明来获知文档类型。HTML4.01中存在三种<!DOCTYPE>的声明,如下:
- HTML 4.01 Strict(严格) 包含所有的HTML元素和属性,但是不包括展示性的和弃用的元素(比如 font),浏览器渲染时会采用严格模式渲染。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- HTML 4.01 Transitional(过渡)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- HTML 4.01 Frameset(框架)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML的<!DOCTYPE>的声明,浏览器渲染时,一般以标准模式渲染。如下:
- XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- XHTML1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML5只有一种声明方式,由于HTML5不基于SGML,所以不需要引用DTD如下:
<!DOCTYPE html>
语法上的区别
详参我前面那个截图
目前为止,HTML5为主流,XHTML相当于一个中间产物,HTML只是提供了一些基础语法。
下面是对dtd和浏览器渲染模式的知识补充:
DTD:DOCTYPE中引用的dtd是作为一种文档类型定义,使用一系列合法的元素来定义文档的结构,浏览器需要参照这个dtd中的规则来对html文档进行解析。
浏览器渲染模式:
1.标准(非怪异)模式(standards mode):浏览器会按照W3C的标准解析和渲染页面
2.怪异模式/混杂模式(quirks mode):尝试模拟更旧的浏览器的行为,一种向后兼容的解析方式,是实现IE5.5以下版本浏览器的渲染模式。
3.部分怪异(近乎标准)模式(almost standards):一些浏览器(例如基于Mozilla的Gecko渲染引擎的浏览器或者Internet Explorer 8在strict mode下)也使用一种尝试这两者之间妥协的近乎标准模式,实施了一种表单元格尺寸的怪异行为,除此之外符合标准定义
参考资料: