在HTML中,像DOCTYPE和注释这样的结构中,感叹号代表什么?

15

我对doctype和comment标签的语法很好奇...

为什么要加感叹号?这个符号被称为什么,它有什么意义或作用?

我已经阅读了HTML语法规范,但除了以下内容外,没有找到实际的解释:

匹配字符串<!DOCTYPE的任何不区分大小写的匹配项。

引用:http://www.w3.org/TR/html-markup/syntax.html#doctype-syntax

4个回答

26
在 SGML 中,HTML 基本上是基于它的,包括 HTML 4.01,在其中感叹号是构造 <! 的一部分,该构造是 mdo(markup declaration open)的参考具体语法。标记声明不是标记元素,而是与元素相关的声明。这包括文档类型声明、注释声明和实体声明。
在基于 XML 的 XHTML 中,没有像那样的通用概念。相反,字符对 <! 只出现在某些结构中,没有统一的理论。
在 HTML5 中,HTML 语法已经以非常 ad hoc 的方式定义,并且文档类型字符串仅被称为文档类型字符串 - 它没有作用,也没有意义,只有触发浏览器中的“标准模式”(或“无怪异模式”)的预期效果。在 XHTML 语法中,它具有其 XML 意义。

1
XML的完美答案:通过在http://www.w3.org/TR/xml上进行'<!'的grep,可以看到每个'<!'语法用例是如何一一定义的。当然,它们所有的基本思想都是:“这是解析器的一个神奇指令,而不是您常规数据的一部分。” - Ciro Santilli OurBigBook.com

6
!符号用于注释(<!-- -->),以及定义HTML文档的DOCTYPE<!DOCTYPE ...>)。 DOCTYPE描述文档的一些特征,例如XML / XHTML / HTML文件的根元素(在HTML中通常是<html>),DTDPublic Identifier和其他子集声明。

1
也用于 <![CDATA 部分。 - Joel Roberts

1

0

<!DOCTYPE ...> 是一个 SGML 文档类型声明。它的目的是告诉 SGML 解析器应该使用哪个 DTD 来解析文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接