在开发新的基于 Web 的应用程序时,您应该选择哪个版本的 html?

编辑:

很酷,我只是想从其他人那里得到一种感觉,我倾向于在自己的工作中使用 XHTML 1.0 Strict,而当其他人参与内容创建时,我倾向于使用 Transitional。

我将第一篇 XHTML 1.0 Transitional 帖子标记为“正确答案”,但坚信当时给出的所有答案同样有效。

有帮助吗?

解决方案

我会选择 XHTML Transitional 1.0。仍然存在一些不喜欢 XHTML 严格的细微差别,而且我现在见过的大多数编辑器都会给您适当的提示,以确保事情做得正确。

其他提示

HTML 4.01。绝对有 没有理由 使用 XHTML 来解决除了实验或学术问题之外的任何问题,您只想在“晦涩”的 Web 浏览器上运行。

XHTML Transitional 甚至对于 那些 浏览器,所以我不确定为什么有人会以此为目标。很多人会推荐这样做,这实际上非常令人震惊。

我想说 HTML 4.01 的目标是最可预测的,但 Teifion 确实是对的,“任何呈现页面的东西都可以”。

回应 迈克尔·斯图姆:

XHTML 基于 XML,因此它可以更轻松地进行解析,并且您还可以使用大多数 IDE 的 XML 组件以编程方式查询和插入内容。

这当然不是真的。Web 上的许多 XHTML(如果不是大多数)不符合 XML 有效性(而且不需要 - 它不会作为 XML 发送)。在处理它时尝试像 XML 一样对待它只会给您带来很多麻烦。例如,Stack Overflow 上的这个页面会因许多无情的 XML 工具因无效标记而产生错误。

过渡性的 XHTML 和 HTML 风格已被弃用。他们的目的只是 对于不支持 CSS 的旧用户代理. 。看 DTD 中的解释.

W3C 建议您尽可能使用 Strict,现在这当然是可能的。

过渡版本已在 XHTML/1.1 和 HTML5 中删除。


XHTML/1.0 具有与 HTML4 完全相同的元素和属性(语义)。XHTML/1.0 规范甚至没有指定任何元素!对于语法之外的其他内容,它指的是 HTML4。

此外,如果您将文档发送为 text/html, ,不幸的是,这是与 IE 和其他纯 HTML 浏览器兼容所必需的。

2008 年,正确的选择是 HTML4 Strict:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

但截至2016年,只有 HTML 的一种版本 这很重要。

 <!DOCTYPE html>

@麦克风:

虽然我同意页面渲染不需要有效性(毕竟,我们必须保持 IE6 兼容性......),但创建兼容且有效的有效 XHTML 不是问题。当人们习惯了 HTML 4 并使用过时的标签和属性时,问题就开始了。

仅仅因为网络是一堆垃圾并不意味着每个新页面也必须是一堆垃圾。SO 上的大多数验证错误都很微不足道,修复起来不需要太长时间,例如属性上缺少引号。

但这可能仍然毫无意义,因为 W3C 根本不知道他们想要走向何方(参见 HTML 5),而且某个也制造操作系统的大型浏览器公司也不关心,所以网站也可以将其文档类型发送为 HTML 1337 很糟糕,浏览器仍会尝试呈现它。

有一些 引人注目的 警告 关于 XHTML 的使用,主要围绕这样一个事实:此类文档的 mime 类型应发送为:

Content-type: application/xhtml+xml

然而 IE 6 和 7 不支持这一点,然后网站必须将其发送为:

Content-type: text/html

不幸的是这个方法是 被认为有害.

一些人还抱怨这样一个事实:虽然 XHTML 的目的是使网页可以由 XML 解析器解析,但由于现有网站上的错误使用,它实际上失败了。

我仍然更喜欢用 XHTML 1.0 Strict 编写文档,主要是因为挑战,以及 清洁度 并进行错误检查 验证器 给出。我更喜欢这种语法,因为它迫使我在标签结束等方面非常明确。对我来说,这更多的是个人选择,而不是纯粹的技术。

Dillie-O 的 XHTML 1.0 Transitional 答案是正确的,但我建议采用 XHTML 1.0 Strict,并且只有在存在某些您绝对需要而 Strict 不允许的功能时才使用 Transitional。

无论您使用哪种流行标准,任何呈现页面的内容都会这样做。XHTML 更严格,并且可能“更好”,但我看不出一种标准相对于另一种标准有什么优势。

我每次都支持 XHTML Strict。我坚信 HTML 应该更像 XML。如果您了解 XML,那么验证它并不困难,并且 W3 的验证器无论如何都会指出您的正确方向。

XHTML 2.0 正朝着 W3 长期以来的目标——语义网络迈进。XHTML 2.0 对我来说最大的好处是网络上的每个符合规范的页面都可以被理解为内容或文章(因为页面就是文档),因为它们都适用于相同的标准。然后您将能够构建解释器(即浏览器)以完全不同的方式呈现内容 - 这里实际上有成千上万的想法在等待。

如果您想以 HTML 兼容的方式使用 XHTML 1.0,那没问题。但是,请注意,W3C 验证器和 XHTML DTD 对 mime 类型以及浏览器之间的不同行为(如 <map> 名称/id 匹配)一无所知。DTD 也不知道浏览器对某些元素(例如 <embed>)的支持程度。

这意味着 XHTML DTD 和验证器并不反映现实,尝试遵守它们是没有意义的。

如果您想使用 XHTML,以便可以用 /> 关闭某些元素(与 html 兼容),只需使用 HTML5 标记(因此浏览器处于完全标准模式)。HTML5 允许以 HTML 兼容的方式使用 />(与使用带有 text/html 的 XHTML 1.0 标记时必须采用的 HTML 兼容方式相同)。然后,坚持在浏览器中有效的方法(您比某些 DTD 更了解)。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title></title>
    </head>
    <body>
        <p>Line1<br/>Line2</p>
        <p><img src="" alt="blank"/></p>
        <p><input type="text"/></p>
        <p><embed type="application/x-something" src=""/></p>
    </body>
</html>

然后,使用 http://validator.nu/ 至少确保它结构良好。

如果您有像任何其他 XML 文档一样生成 XHTML 的工具,那么就使用 XHTML。但是当你只使用纯文本模板、文本连接等时。你对旧的 HTML 4.01 没问题。

浏览器现在开始支持这个已有 10 年历史的标准。

重要的: 生成 XML 时避免被称为笨蛋

就我个人而言,我更喜欢 XHTML 1.0 Transitional。

XHTML 基于 XML,因此它可以更轻松地进行解析,并且您还可以使用大多数 IDE 的 XML 组件以编程方式查询和插入内容。

过渡性不像严格那样严格,这使得它相对容易使用,而严格则通常是 PITA。 过渡性和严格性的比较

1.0 比 1.1“更兼容”,并且 1.1 似乎仍在某种开发中。

我的目标是 XHTML 1.0 Trans。最好保持一致,这样当浏览器中的错误得到修复时,您就不会突然争分夺秒地试图找出实际需要更改的内容。

在我看来,1.1 已经无聊了,2.0 已经被砸成了碎片:我真的需要/想要页眉/页脚标签吗?

我认为使用 XHTML 还是纯 HTML 实际上并不重要。这里的最终目标是通过可预测的渲染实现低维护和快速开发。只要您有验证代码,您就可以使用 xhtml 或 html 来获取此信息。我什至听说过最好以怪异模式为目标的争论,因为新版本的浏览器不会改变怪异模式,因此维护很容易。

最终,这一切都变成了标签汤,这是有充分理由的,因为让 Web 应用程序开发人员编写无错误的 html 意味着要求他们编写无错误的代码。验证器没有帮助,因为它们只验证初始页面视图。这也是为什么我从未见过 xhtml 中的点可以用作静态站点之外的任何内容的 xml。Web 应用程序开发人员将他们的 Web 应用程序作为 xml 提供服务的傲慢程度是惊人的。

HTML 4.0 严格,或 ISO HTML。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top