有很多线程解释了Doctype的选择,但我找不到任何解释实际语法的内容。举个例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
特别是:
lang=en
?答案 0 :(得分:2)
虽然它没有回答你所有的问题,但我认为这是一个好的开始。维基百科是你的朋友。 ;)
http://en.wikipedia.org/wiki/Document_Type_Declaration
P.S。对于遗漏的双引号问题,我认为引号是为了正确解释空格的字符串
答案 1 :(得分:1)
好问题。我从来没有真正想过这件事。
我发现http://www.blooberry.com/indexdot/html/tagpages/d/doctype.htm详细解释了每个部分。
答案 2 :(得分:1)
为什么第一个字符串用两个斜杠分隔而不是1?
SGML syntax为"Owner//Keyword Description//Language"
。
但实际上,这是无关紧要的,因为浏览器实际上并没有使用SGML解析器来实现HTML。 DOCTYPE只是一个在怪癖模式和标准模式之间做出决定的开关。
答案 3 :(得分:0)
Doctypes不仅限于HTML页面。 Doctypes用于引用文档类型定义(DTD),它定义了对XML文档结构的约束。
可能有不同类型,OP的示例遵循“公共外部DTD”格式:
<!DOCTYPE root_element PUBLIC "DTD_name" "DTD_location">
其中:
root_element
:是xml的根DTD_name
:DTD的标识符,以便处理器可以使用它的本地版本而不必下载它DTD_location
:DTD的位置,以防它在本地不可用。 DTD_name
也有定义的格式:
"prefix//owner_of_the_DTD//description_of_the_DTD//ISO 639_language_identifier"
其中prefix
是以下之一:
ISO
:DTD是ISO标准。所有ISO标准均获得批准。+
:DTD是经过批准的非ISO标准。-
:DTD是未经批准的非ISO标准。