浅谈文档模式设计(文档的格式设置包括哪些)

lxf2023-03-16 09:19:01

我不知道。写html代码的时候有没有想过DOCTYPE html >或者这一长串莫名其妙的DOCTYPE HTML public“-/W3C//dtdttml 4.01//en " " http://www . w3 . org/tr/HTML 4/strict . dtd " >?它是做什么的,为什么会有这句话?我不打算告诉你,我们经常在前端面试题中看到关于这个知识点的问题,但是我们往往爱追求高大上的页面效果却忽略了最基本的文档模式。没有文档模式的命令,怎么能得到高大上的页面效果!!那就来从这个总结中寻找答案吧!

文档模式:

这个概念是通过切换文档类型doctype来实现的,最后两种渲染模式是混杂模式标准模式。这两种模式的区别在于,工作在不同版本的渲染引擎环境下,混杂模式会使IE的行为与IE5相同(包括非标准特性),而标准模式会使IE的行为更接近标准行为。这两种模式主要影响css内容的呈现,在某些情况下也会被JavaScript解释和执行(后面会详细讨论)。之后IE提出了近乎标准的模式。这种模式下的很多浏览器功能都是符合标准的,但不是全部。不规范的地方是在处理图片间隙时(在表格中使用图片时问题最明显)。标准模式和准标准模式非常接近,检测文档模式时不会发现差异。当这里提到标准模式时,我指的是除混杂模式之外的其他模式。

文档类型DOCTYPE的定义和用法:

您可以决定浏览器的工作模式。

  • 声明必须是HTML文档的第一行,在标记之前。
  • 声明不是HTML标记;它是一个指令,告诉web浏览器使用哪个HTML版本来编写页面,并告诉浏览器的解析器使用什么文档类型规范来解析这个文档。对于每个规范,浏览器也会选择相应的文档模式。
  • HTML4.01中,声明引用DTD,因为HTML4.01基于SGML(标准通用标记语言,是现时常用的超文本格式的最高层次标准,是可以定义标记语言的元语言。HTML和XML派生于它。XML可以被认为是它的一个子集,XML的出现就是为了简化它以便用于更加通用的目的比如语义web,而HTML是它的一个应用)。DTD规定了标记语言的规则,让浏览器的渲染去遵守这个规则才能正确地呈现内容。
    浅谈文档模式设计(文档的格式设置包括哪些)
    但HTML5不是基于SGML的因此不需要引用DTD。在HTML4.01中,声明指的是DTD,因为HTML4.01是基于SGML(标准通用标记语言)的,SGML是目前普遍使用的超文本格式的最高级别标准,是一种可以定义标记语言的元语言。HTML和XML都是从中衍生出来的。XML可以看作是它的一个子集,XML的出现是为了语义网等更通用的目的而简化它,HTML就是它的应用之一)。DTD指定了标记语言的规则,因此浏览器的呈现可以遵循该规则,以便正确地呈现内容。

    但是HTML5不是基于SGML的,所以不需要参考DTD。
  • 文档类型DOCTYPE的语法:

    顶级元素可用性“注册//组织//类型标签定义//语言”“URL”

  • doctype HTML > /XHTML
    此DTD包含所有HTML元素和属性,但不包含可公开和不推荐使用的元素(如font),并且不允许使用框架集。标签

    doctype html public "-/W3C//dtdtdtXHTML 1.0 strict//en " " http://www . w3 . org/tr/XHTML 1/dtd/XHTML 1-strict . dtd " >[/div][
  • (3)准标准模式:使用过渡或框架集文档触发。

    //html
    该DTD包含所有HTML元素和属性,包括展示性的和弃用的元素(比如font),不允许框架集(Framesets)。 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    该DTD包含所有HTML元素和属性,包括展示性的和弃用的元素(比如font),但允许框架集内容。 DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> //xhtml
    该DTD包含所有HTML元素和属性,包括展示性的和弃用的元素(比如font),不允许框架集(Framesets),必须以格式正确的XML来编写标记。 DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    该DTD包含所有所有HTML元素和属性,包括展示性的和弃用的元素(比如font),允许框架集内容。 DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

    对于所有HTML5/HTML 4.01/XHTML元素以及它们将出现在什么文档类型(DTD)中,请参考HTML元素和有效的DTD。
    使用过渡DTD可以让我们使用表示层的logos、元素和属性(指那些纯粹用来控制表示层的标签,比如用于排版的表格、背景色标识等。),而且更容易通过W3C代码验证。但是HTML5强调用HTML logo来表达结构,用css来实现表达的形式,也就是数据和表达是分离的,尽量不要用过渡型和框架型。

    当浏览器打开混杂模式时:

    影响css的条件

    主要是IE浏览器,其他Chrome、FF、IE高级浏览器在任何模式下都能正常显示。

  • 盒模型是混杂模式和标准模式的主要区别
  • 相关专题