23

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

编辑:

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

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

4

14 回答 14

26

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

即使对那些浏览器来说, XHT​​ML 过渡也是完全没有意义的,所以我不确定为什么有人会以此为目标。很多人会推荐它,这实际上非常令人担忧。

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

回应迈克尔·斯图姆

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

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

于 2008-08-06T17:10:25.317 回答
9

我会为 XHTML Transitional 1.0 拍摄。仍然存在一些不喜欢严格的 XHTML 的细微差别,而且我现在看到的大多数编辑器都会给您适当的推动以确保事情正确完成。

于 2008-08-06T16:43:00.410 回答
8

不推荐使用 XHTML 和 HTML 的过渡风格。它们仅适用于不支持 CSS 的旧用户代理。请参阅DTD 中的说明

W3C 建议您应该尽可能使用 Strict,而现在它肯定是可能的。

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


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

此外,如果您以 . 格式发送文档,您将无法使用 HTML(命名空间、XML DOM)中不可用的任何 XHTML 功能,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>
于 2008-10-11T12:55:24.533 回答
3

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

于 2008-08-06T16:46:26.143 回答
3

@麦克风:

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

仅仅因为 Web 是一堆废话并不意味着每个新页面也必须是一堆废话。SO 上的大多数验证错误都是微不足道的,修复应该不会花费太长时间,例如缺少属性上的引号。

但这可能仍然毫无意义,因为 W3C 并不知道他们想去哪里(参见 HTML 5),而且某家大型浏览器公司也生产操作系统也不在乎,所以一个站点也可以发送它的 doctype,因为 HTML 1337 Sucks 并且浏览器仍然会尝试呈现它。

于 2008-08-06T20:27:27.883 回答
3

关于 XHTML 的使用有一些令人信服的 警告,主要围绕这样一个事实,即此类文档的 mime-type 应该发送为:

Content-type: application/xhtml+xml

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

Content-type: text/html

不幸的是,这种方法被认为是有害的。

一些人还抱怨这样一个事实,虽然 XHTML 的目的是使网页可以被 XML 解析器解析,但由于在现有网站上的不正确使用,它在实践中失败了。

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

于 2008-08-21T16:46:27.167 回答
2

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

于 2008-08-06T16:43:45.680 回答
1

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

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

Transitional 不像 strict 那样严格,这使得它相对容易使用,与通常可以是 PITA 的 strict 相比。过渡和严格的比较

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

于 2008-08-06T16:44:28.410 回答
1

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

在我看来,1.1 是无聊的,而 2.0 已经被粉碎了:我真的需要/想要一个页眉/页脚标签吗?

于 2008-08-06T20:20:23.013 回答
1

我每次都支持 XHTML Strict。我坚信 HTML 应该更像 XML。如果您了解 XML 并且 W3 的验证器 i 指出您在正确的轨道上,那么验证它并不难。

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

于 2008-08-21T15:54:21.020 回答
1

如果您想以与 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/确保它至少格式正确。

于 2008-10-11T14:21:57.260 回答
1

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

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

重要提示:在生成 XML 时避免被称为笨蛋

于 2010-01-10T12:08:41.387 回答
0

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

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

于 2008-10-11T14:54:59.847 回答
-1

HTML 4.0 Strict 或 ISO HTML。

于 2008-10-17T18:24:02.247 回答