迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > HTML >

尽可能小的有效 (X)HTML 文档

作者:迹忆客 最近更新:2023/01/10 浏览次数:

我认为为每个版本记录尽可能小的有效 HTML 文档会很有趣,所以这里是:)


ISO/IEC 15445:2000,也称为“ISO HTML”:113 字节

<!DOCTYPE html PUBLIC"ISO/IEC 15445:2000//DTD HTML//EN"><html><head><title></title></head><body><p></body></html>

DOCTYPE 也可以写成 <!DOCTYPE html PUBLIC "ISO/IEC 15445:2000//DTD HyperText Markup Language//EN">,但显然需要更多字符。

尽管它欺骗了 W3C 验证器,但只要不使用系统标识符,PUBLIC 后面的空格就可以省略。

<html><head><body> 的开始和结束标记以及作为正文内容的块级元素是必需的。 不过,可以省略 <p> 元素的结束标记。


HTML 2.0:58 字节

<!DOCTYPE html PUBLIC"-//IETF//DTD HTML 2.0//EN"><title//x

除了 DOCTYPE 之外,只有 <title> 元素以及一些正文内容(在本例中为文本“x”)是必需的。 <html><head><body> 的开始和结束标记可以省略。 (浏览器会自动创建这些元素。)

大家能已经注意到这里使用了 <title// 而不是 <title></title>。 这是名为“SHORTTAG NETENABL IMMEDNET”的 SGML 标记最小化功能。 NET 代表空结束标记。 基本上,这允许缩短文本值周围的标签。 <title// 中的第一个斜杠 (/) 代表启用 NET 的“开始标记关闭”(NESTC),第二个斜杠代表 NET。 如果您向 <title> 元素添加一些内容,理论上我们可以使用 <title/Foo/ 而不是 (<title>Foo</title>)。

请注意 ,根据 W3C 验证程序,以下版本(54 字节)似乎具有相同的效果:

<!DOCTYPE html PUBLIC"-//IETF//DTD HTML//EN"><title//x

HTML 3.2:63 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 3.2 Final//EN"><title//x

请注意 ,HTML 3.2 和更早版本的 DOCTYPE 对我们的文档没有真正的影响; 浏览器仍然进入奇怪模式。


HTML 4.0 Strict:59 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.0//EN"><title//<p>

在 HTML4 中,正文内容必须包含块级元素——仅文本内容不行。 因此,使用了一个空的 <p> 元素。


HTML 4.01 Transitional:71 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><title//x

请注意 ,我们没有使用完整的文档类型声明; 系统标识符(理论上允许用户代理下载文档类型定义和任何需要的实体集的 URL 部分)是可选的,因此这里省略了。

HTML 4.01 Transitional 需要正文内容,但接受文本内容; 不需要 <body> 中的块级元素。


HTML 4.01 Frameset: 84 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Frameset//EN"><title//<frameset/<frame>/

完整的 DOCTYPE<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">,但系统标识符可能 被省略。

如我们所见,我们使用了与之前相同的 SGML 技巧 (<frameset/<frame>/) — 只不过这次我们实际上是将内容添加到包装器元素。

HTML 4.01 Frameset 中,<frameset> 元素必须有一个 <frame> 子元素。 XHTML 1.0 Frameset 没有这个要求。


HTML 4.01 Strict:60 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01//EN"><title//<p>

HTML 4.01 + RDFa 1.0:69 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01+RDFa 1.1//EN"><title//<p>

完整的 DOCTYPE<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/html401-rdfa-1.dtd"> , 但系统标识符可以省略。


HTML 4.01 + RDFa 1.1:69 字节

<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01+RDFa 1.1//EN"><title//<p>

完整的 DOCTYPE<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/html401-rdfa11-1.dtd"> , 但系统标识符可以省略。


XHTML Basic 1.0:41 字节

<html><head><title/></head><body/></html>

DOCTYPE — 在这种情况下,<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd" > — 在所有 XHTML 版本中都是可选的,假设文档提供了正确的 Content-Type: application/xhtml+xml 标头。 (这是一个大胆的假设。)

请注意 ,此版本的 XHTML 中不需要根 <html> 元素的 xmlns 属性。

正文内容也是可选的。

我们可能会注意到这里使用了 <title/> 而不是 <title></title>。 这是 HTML 序列化中 <title// 的 XHTML 等价物。 还记得我们谈到 SGML 时,HTML 是如何用 / 定义它的 NET 和 NETSC 的吗? 这里唯一的区别是 XML 用 / 定义 NESTC,用 >(尖括号)定义 NET。


XHTML Basic 1.1:41 字节

<html><head><title/></head><body/></html>

DOCTYPE<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd"> 是可选的 — 再次假设文件以正确的 MIME 类型提供。


XHTML 1.0 Transitional: 78 字节

<html xmlns="http://www.w3.org/1999/xhtml"><head><title/></head><body/></html>

DOCTYPE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 是可选的 .


XHTML 1.0 Frameset: 82 字节

<html xmlns="http://www.w3.org/1999/xhtml"><head><title/></head><frameset/></html>

DOCTYPE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 是可选的 。


XHTML 1.0 Strict: 78 字节

<html xmlns="http://www.w3.org/1999/xhtml"><head><title/></head><body/></html>

DOCTYPE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 是可选的 。


XHTML + RDFa 1.1: 78 字节

<html xmlns="http://www.w3.org/1999/xhtml"><head><title/></head><body/></html>

DOCTYPE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd"> 是可选的。


XHTML 1.1: 78 字节

<html xmlns="http://www.w3.org/1999/xhtml"><head><title/></head><body/></html>

DOCTYPE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 是可选的。


HTML5:15 字节

<!DOCTYPE html>

没错——没有 <title> 元素! 当更高级别的协议提供标题信息时,例如 在电子邮件的主题行中或当 HTML 用作电子邮件创作格式时,可以省略 <title> 元素。

在所有其他情况下,这是最小的 HTML5 文档(31 字节):

<!DOCTYPE html><title>x</title>

遗憾的是,我们之前使用的 SGML 技巧 (<title//) 在 HTML5 中不再被允许。 即使是,我们仍然无法使用它,因为如果使用它,HTML5 要求 <title> 元素的内容值非空。 这背后的原因很明显:如果将 <title> 元素留空,则意味着文档不需要标题,在这种情况下,我们应该完全省略 <title> 元素(如上所述)。

请注意 ,正文内容不是必需的。


XHTML5: 字节

<html xmlns="http://www.w3.org/1999/xhtml"/>

XHTML5 不需要 DOCTYPE。 就像在 HTML5 中一样,有些情况下不需要 <title> 元素。 正文内容也是可选的。

(使用 validator.nu 来确认这一点;如果我们尝试对此进行验证,W3C 验证器将退回到 XHTML 1.0 Transitional。)

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

HTML 中的 role 属性

发布时间:2023/05/06 浏览次数:124 分类:HTML

本篇文章介绍 HTML role属性。HTML中 role 属性介绍,role 属性定义描述语义的 HTML 元素的角色。

在 HTML 中打印时分页

发布时间:2023/05/06 浏览次数:188 分类:HTML

本篇文章介绍如何在打印 HTML 页面或内容时强制分页。将 page-break-after 属性设置为 always Inside @media print to Page Break in HTML

在 HTML 中显示基于 Cookie 的图像

发布时间:2023/05/06 浏览次数:154 分类:HTML

本文介绍如何根据 HTML 中的 cookies 显示图像。根据 HTML 中设置的 Cookies 显示图像。问题陈述是我们需要根据网页传递的cookie来显示特定的图像。

在 HTML 中创建下载链接

发布时间:2023/05/06 浏览次数:140 分类:HTML

本文介绍如何在 HTML 中创建下载链接。使用 download 属性在 HTML 中创建下载链接.。我们可以使用 HTML 锚元素内的下载属性来创建下载链接。

HTML 中的 ::before 选择器

发布时间:2023/05/06 浏览次数:70 分类:HTML

本教程介绍 CSS ::before 伪元素。CSS ::before 伪元素。 ::before 选择器是一个 CSS 伪元素,我们可以使用它在一个或多个选定元素之前插入内容。 它默认是内联的。

在 HTML 中创建一个可滚动的 Div

发布时间:2023/05/06 浏览次数:54 分类:HTML

本篇文章介绍如何使 HTML div 可滚动。本文将介绍在 HTML 中使 div 可滚动的方法。 我们将探索垂直和水平滚动,并通过示例查看它们的实现。

HTML 显示箭头的代码

发布时间:2023/05/06 浏览次数:153 分类:HTML

一篇关于用于显示箭头的 Unicode 字符实体的紧凑文章。本文讨论使用 Unicode 字符实体在我们的 HTML 页面上显示不同的字符。 HTML 中使用了许多实体,但我们将重点学习表示上、下、左、右的三角

在 HTML 中启用和禁用复选框

发布时间:2023/05/06 浏览次数:149 分类:HTML

本篇文章介绍如何启用和禁用 HTML 中的复选框。HTML 中的复选框 复选框是一个交互式框,可以切换以表示肯定或否定。 它广泛用于表单和对话框。

HTML 中的只读复选框

发布时间:2023/05/06 浏览次数:198 分类:HTML

本篇文章介绍了如何在 HTML 中制作只读复选框。本文是关于如何使 HTML 复选框控件成为只读组件的快速破解。 但是,首先,让我们简要介绍一下复选框控件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便