有人可以向我解释一下,为什么这段代码是有效的吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
我期待着收到你的回复。感谢关注。
有人可以向我解释一下,为什么这段代码是有效的吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
我期待着收到你的回复。感谢关注。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
HTML 5(根据https://validator.w3.org/#validate_by_input,有15个错误):
<!DOCTYPE html>
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
说明:
这个HTML结构是有效的,因为根据HTML 4.0.1规范(https://www.w3.org/TR/1999/REC-html401-19991224/):
B.3.7 简写标记
一些SGML SHORTTAG结构节省了打字时间,但对SGML应用程序没有增加任何表现能力。虽然这些结构从技术上讲不会引入歧义,但它们降低了文档的健壮性,特别是当语言被增强以包括新元素时。因此,尽管与属性相关的SHORTTAG结构得到广泛使用和实现,但与元素相关的SHORTTAG结构却没有。使用它们的文档是符合SGML文档的,但不太可能与许多现有的HTML工具一起使用。
所涉及的SHORTTAG结构如下:
- NET标记:
<name/.../
- 闭合开始标记:
<name1<name2>
- 空开始标记:
<>
- 空结束标记:
</>
引用自https://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.3.7。
因此,根据HTML 4.01规范,这意味着:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
2 <html<head>
3 <title//
4 <p ltr<span id=p></span</p>
5 </>
<html>
开始标签,不需要关闭</html>
标签。<head>
开始标签,不需要关闭</head>
标签。<title>
开始标签,浏览器会将<title// <p ltr<span id=p>
读作<title>
,不需要关闭</title>
标签。<title>
标签的内容(内部HTML),即</span</p> </>
(这是浏览器显示为页面标题的内容)。以上是我的额外解释。希望能帮到你。