当前位置: 首页 > 面试题库 >

html中不同的文档类型是什么?它们是什么意思?

尚恩
2023-03-14
问题内容

如标题所述,有哪些不同的文档类型?它们的含义是什么?我注意到从切换到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是常见的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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 万维网联盟 是一个在定义这些标准方面发挥积极作用的组织。他们在维护了一个有用的在线工具,用于根据其标准验证和验证文档。还有许多其他具有相似功能的第三方工具和浏览器扩展



 类似资料:
  • 问题内容: 我正在研究Swing程序中文本组件的结构。 据我了解,本质上分为视图和模型。该模型是实现的类的实例,该类包含所有文本并提供操作文本的方法,而View则以可视方式呈现文本。 但是我不知道使用an的确切位置,方式和原因。我不确定是否封装(“拥有”)模型(),或者文档是否封装了模型。而且不确定所有这些视图在哪里适合。 有两个问题: 1- 请描述视图之间的关系和在。什么封装了什么,什么与什么相

  • 问题内容: 在Java中,嵌套类是什么,它们做什么? 问题答案: 它们只是其他类中的类。它们使类的层次结构成为可能,如果您将它们设为私有,则这是一种使用它们封装不在类外部公开的数据的便捷方法。Sun有一个简短的教程关于他们

  • 问题内容: 有5 s,而我只用了1 s(最后一个)。 其他用途是什么?我可以在哪些实际应用中使用它们? 问题答案: 值的完整列表为: (来自https://www.w3schools.com/js/js_ajax_http_response.asp) 实际上,除了4之外,几乎几乎不使用它们中的任何一个。 一些 XMLHttpRequest实现可能会让您在when中看到部分接收到的响应,但这不是普遍

  • 问题内容: Java中的原始类型是什么?为什么我经常听到不应该在新代码中使用它们的信息? 如果我们不能使用原始类型,那有什么选择呢?有什么更好的选择? 问题答案: 什么是原始类型? Java语言规范对原始类型的定义如下: JLS 4.8原始类型 原始类型定义为以下之一: 通过采用通用类型声明的名称而没有随附的类型参数列表而形成的引用类型。 数组类型,其元素类型为原始类型。 未从的超类或超接口继承s

  • 我刚刚开始使用MongoDB,我注意到它使用BSON在内部存储数据。然而,关于什么是BSON以及如何在MongoDB中使用BSON,文档并不十分清楚。有人能给我解释一下吗?

  • 使用PEP 557,将数据类引入python标准库。 它们使用了装饰器,它们应该是“带默认值的可变名称耦合”,但我不太清楚这到底意味着什么,以及它们与普通类的区别。 python数据类到底是什么?什么时候最好使用它们?