欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

Markup Language和DOCTYPE_html/css_WEB-ITnose

程序员文章站 2022-05-26 10:41:26
...
Markup language, a notation used to annotate a document’s content to give information regarding the structure of the text or instructions for how it is to be displayed.

标记语言,用于注释文档内容的一种符号,给出文本或指令的结构信息用于如何显示。

A markup language is a set of tags and/or a set of rules for creating tags that can be embedded in digital text to provide additional information about the text in order to facilitate automated processing of it, including editing and formatting for display or printing.

一种标记语言是一组标签的集合和一组规则的集合,创建标签并且嵌入到数字文本中,提供关于文本的额外信息便于自动解析处理,其中包括为了把文本显示或打印出来的编排和格式化处理。

一般Markup language特指用于计算机文档的标记语言。

简单说,就是给文档内容按规则加入一些额外的标记符号,它们是用来告诉媒介如何展现内容的,在最终的展现中是看不到这些符号的。

https://en.wikipedia.org/wiki/Markup

http://www.linfo.org/markup_language.html

SGML(Standard Generalized Markup Language)是GML(Generalized Markup Language)标准化后的名称。1986年成为ISO标准。

HTML(HyperText Markup Language),1993年发布首个正式Draft(IETF发布)。

XML(Extensible Markup Language),1996年发布首个正式Draft。

XHTML(Extensible Hypertext Markup Language)1998年发布首个正式Draft。因为HTML早在W3C组织创建前就存在了,W3C接手后,不怎么喜欢,于是搞了个XHTML。

HTML5 2008年发布首个正式Draft(WHATWG发布)。浏览器大厂为首的WHATWG组织弄了个HTML5,W3C只能妥协,HTML5成为W3C标准后,W3C还是搞了个XHTML5 (XML-serialized HTML5),对XML是真爱啊。

HTML是SGML的子集。

XML是SGML的子集。

HTML和XML是兄弟关系,它们都是SGML的子集。

XHTML是独立于HTML的新标记语言,脱胎于HTML。XHTML是把HTML按XML标准重写后的标记语言,它是XML的子集。

HTML5和SGML是并列的关系,都是一种独立的标记语言,HTML5脱胎于SGML。

HTML,XML,XHTML,HTML5都是用于互联网文档的标记语言。

A document type definition (DTD) is a set of markup declarations that define a document type for an SGML-family markup language (SGML, HTML, XML, XHTML).DTD(document type definition)文档类型定义是一组标记符号声明的集合,用于定义SGML大家庭的标记语言(SGML, HTML, XML, XHTML)的文档类型。

因为HTML5不是SGML大家庭的标记语言,它是和SGML并存的独立的标记语言,所以它不需要DTD。

The doctype has a long and intricate history, but for now all you need to know is that this doctype tells the browser to interpret the HTML and CSS code according to W3C standards and not try to pretend that it is Internet Explorer from the 90s.HTML文档第一行的doctype标记有着很长的和错综复杂的历史,但是现在你只需要知道这个doctype是告诉浏览器根据W3C标准去解释HTML和CSS代码,而不是去模拟90年代的IE。

现在浏览器的布局引擎layout engines使用三种模式:quirks mode, almost standards mode, 和full standards mode. 在quirks mode(怪异模式)中,layout仿照Navigator 4和IE 5老浏览器的不标准行为,为了那些在标准发布前建的网站这是必要的;在full standards mode(标准模式)中,layout行为被期望和HTML和CSS规范中描述的一样.在almost standards mode(接近标准模式)中,有极少数怪异行为。

浏览器通过HTML文档的DOCTYPE标记来触发哪种行为模式。触发浏览器采用最新HTML5规范。在HTML5规范中,DOCTYPE标记唯一的作用就是触发浏览器的full standards mode,但是其他HTML规范中这个标记还附加了引用DTD文件,确定文档类型的功能,但是对于浏览器来说,只是用来触发不同的layout mode,没有其他作用。

The HTML layout engines in modern web browsers perform DOCTYPE “sniffing” or “switching”, wherein the DOCTYPE in a document served as text/html determines a layout mode, such as “quirks mode” or “standards mode”. The text/html serialization of HTML5, which is not SGML-based, uses the DOCTYPE only for mode selection. Since web browsers are implemented with special-purpose HTML parsers, rather than general-purpose DTD-based parsers, they don’t use DTDs and will never access them even if a URL is provided. The DOCTYPE is retained in HTML5 as a “mostly useless, but required” header only to trigger “standards mode” in common browsers.

在现代浏览器中,HTML布局引擎执行DOCTYPE的嗅探”sniffing”或切换”switching”,text/html文档中的这个DOCTYPE决定一种布局模式,比如”quirks mode” or “standards mode”。HTML5的text/html序列化不是基于SGML的,使用DOCTYPE标记仅仅是为了模式选择。自从浏览器采用专业型HTML解析器实现解析,而不是用基于DTD的通用型解析器解析,它们不使用DTDs,即使提供一个URL也绝不会访问它。这个DOCTYPE保留在HTML5的头部,就像是“多半没用,但是必需 mostly useless, but required”,它仅用于在浏览器中触发”standards mode” 。