繁体   English   中英

在HTML中,文档类型声明是一个元素吗?

[英]In HTML, is the document type declaration an element?

在HTML中,文档类型声明是一个元素吗?

我想不,因为在XML中,文档类型声明<!DOCTYPE是prolog的一部分而不是元素。 请参阅https://www.w3.org/TR/xml/#sec-prolog-dtdhttps://www.w3.org/TR/xml/#NT-doctypedeclhttps://stackoverflow.com/a /十五万六千四百五十八分之五千五百七十九万六千〇四十零

但Adam Freeman的HTML5权威指南说

DOCTYPE元素告诉浏览器它正在处理HTML文档。 这通过HTML布尔属性表示:

 <!DOCTYPE HTML> 

没有

毫无疑问,面向标准的语言是DOCTYPE,称为元素

HTML5的权威指南 ,尽管它的名字很有吸引力 ,但它的术语却很草率。

XML

doctypedecl的语法

doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' intSubset ']' S?)? '>'

元素的区别明显不同且不相容:

element   ::= EmptyElemTag | STag content ETag  
STag      ::= '<' Name (S Attribute)* S? '>'
Attribute ::= Name Eq AttValue
ETag      ::= '</' Name S? '>'

HTML5

HTML5规范具有DOCTYPE( WHATWG / W3C )和元素( WHATWG / W3C )的单独部分,并且绝不会以任何方式混淆DOCTYPE与元素混淆的术语。

文档类型声明是标记文档的序言开头的语法结构。 在SGML中,通过扩展XML,DTD告诉解析器文档元素(文档的“根”元素的名称),并可选地包含或引用元素,属性,实体,符号,短引用的标记声明(SGML)仅),以及文档中使用的链接规则(仅限SGML)。

元素 OTOH是逻辑构造,由开始和结束元素标记组成

在Web浏览器中,doctype声明过去曾用于以奇怪的方式表达HTML版本级别,但HTML5仅接受<!DOCTYPE html><!DOCTYPE html SYSTEM "about:legacy-compat">

标记声明绝不可以是元素,并且doctype声明中使用的HTML不是属性,更不用说用作HTML5样式的布尔属性。 你引用的作者完全不知道他在说什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM