如标题所述,有哪些不同的文档类型?它们的含义是什么?我注意到从切换到IE7时,布局看起来有些不同
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
至
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
还有其他的吗?影响或后果是什么?
谢谢!
一个 文档类型 或 文档类型声明 关联与文档 的文档类型定义 。
该 文档类型定义 是一个XML文档的标准。XML和XHTML文档都有许多DTD。XML本身并没有太多的架构或一组非常具体的规则,除了要求一切都必须格式正确。您可以将DTD视为 文档 的更特定 架构 。
渲染模式
由于标准的发展,大多数现代浏览器实际上具有不同的呈现模式(“ 标准模式” (用于根据最新的网络标准呈现文档和CSS)和“ 怪癖”模式 (其中,浏览器带回了早期网络的一些呈现想法) )。建立这些模式是为了实现向后兼容。在Web的第一个时代创建的广阔的网页景观是根据其时间规则呈现的,而较新的文档可以吸引新的标准浪潮。随着时间的流逝和新格式的出现,可能会创建相应的DTD。
浏览器差异
在理想情况下,浏览器正在加载的页面将读取顶部的Doctype并使用它来查找文档类型定义。然后,它将使用该DTD的架构作为阅读文档其余部分的基础。因此,文档类型对于验证标记文档至关重要。DTD将提供验证文件所依据的标准。
不幸的是,这不是一个理想的世界。浏览器不一定在这里表现一致,如果这样做,则一致的表现与Doctypes的最初愿景并不完全一致。尽管解析是独立于Doctype进行的,但是主要的浏览器至少会检查Doctype以确定呈现方式。如果您的Doctype不存在或不完整,则浏览器可能会以 quirks模式 呈现。为了使正确书写的现代文档正确显示,浏览器应以 标准模式 呈现。Mozilla,Safari和Opera的某些最新版本实际上实现了 几乎标准 模式,该模式完全专用于过渡页面。
当您更改Doctype并注意到页面显示方式的更改时,这是因为浏览器在尝试解析文档时可能会应用一组稍有不同的规则。因此,生成的页面可能有所不同,这取决于其所有部分是否都符合DTD,或者至少取决于浏览器,您的数据在doctype建议的呈现模式下进行了验证。
选择文件类型
为了遵守标准,应尽可能使用严格的Doctypes。
用 XHTML 编写时,此Doctype是常见的:
用 HTML 4.1 编写时,这是常见的:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
为了完整起见,此处还列出了XHTML和HTML 4的其他一些常见文档类型:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
关于严格和过渡文档类型的辩论
标准宣传人员呼吁Web开发人员停止在新页面上使用过渡文档类型,而应使用严格。同样,在这种情况下,理论与实践之间存在一些协调困难。过渡Doctype的最初希望是为将旧版网站过渡到符合标准的过程提供一个中间空间。使用过渡文档类型时,对元素和属性的限制实际上是“不太严格”的,因此开发人员将能够使他们的工作更快地在标准模式下运行,并逐步消除突出的差异。
之所以存在争议,是因为开发人员在企业环境中更改Doctype并不总是那么简单。中小型网站的自由开发人员和制造商通常可以更轻松地确定其Doctype并进行此过渡。在用于要求很高的基于Web的服务的企业生产环境中,对遗留系统和第三方代码产品的依赖本质上更加复杂,它们本身可能正处于删除或重新设计的路线图上,但必须执行此类更改有条不紊地逐步完成。
有用的工具
W3C 万维网联盟 是一个在定义这些标准方面发挥积极作用的组织。他们在维护了一个有用的在线工具,用于根据其标准验证和验证文档。还有许多其他具有相似功能的第三方工具和浏览器扩展 。