有人可以向我解释,为什么这段代码有效?为什么这个html代码有效?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
我期待收到您的回复。感谢您的关注
有人可以向我解释,为什么这段代码有效?为什么这个html代码有效?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
我期待收到您的回复。感谢您的关注
这些HTML代码是有效的,因为HTML 4.01允许这些事情,而尊重文档类型的互联网浏览器将显示没有问题。
如果您将文档类型更改为HTML 5,那么肯定会给出错误,因为HTML 5对于编写正确的HTML标签要求更严格。
HTML 4.01(根据https://validator.w3.org/#validate_by_input没有错误):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html<head>
<title//
<p ltr<span id=p></span</p>
</>
HTML 5(15错误根据https://validator.w3.org/#validate_by_input):
<!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应用程序没有表现能力。尽管这些构造在技术上不会引入歧义,但它们会降低文档的健壮性,特别是在语言增强以包含新元素时。因此,尽管与属性相关的SGML的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> </>
(这是因特网浏览器显示为页面标题的内容)。这是我另外的解释。希望能够帮助你。
为什么不应该这样? (你有很多不常用的HTML特性,如果你对它们中的一个有特定的问题,那么这可能会是一个更好的问题) – Quentin
对我来说这似乎不合适。 –
它引发7个警告。对我而言,这是无效的。如果您不关闭标签,则会显示警告。 –