HTML版本选择

时间:2008-08-06 16:40:23

标签: html xml xhtml

在开发基于Web的新应用程序时,您的目标是什么版本的HTML?

编辑:

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

我将第一个XHTML 1.0 Transitional帖子标记为“正确答案”,但强烈相信那时同样有效的所有答案。

14 个答案:

答案 0 :(得分:25)

HTML 4.01。绝对没有理由将XHTML用于除了实验或学术问题之外的任何事情,而这些问题只能在“模糊”的网络浏览器上运行。

XHTML Transitional对于那些浏览器来说完全没有意义,所以我不确定为什么有人会瞄准它。实际上非常令人担忧的是,很多人会推荐这一点。

我认为瞄准HTML 4.01是最可预测的,但Teifion确实是对的,“任何能让你的页面都能做到的东西”。

回应Michael Stum

  

XHTML是基于XML的,因此它允许更容易解析,您还可以使用大多数IDE的XML组件以编程方式查询和插入内容。

这当然不是真的。 Web上的许多XHTML(如果不是大多数)不符合XML有效性(并且它不需要 - 它不是作为XML发送的)。在处理它时尝试将其视为XML,这只会给你带来很多麻烦。例如,Stack Overflow上的这个页面会产生许多错误的XML工具错误,无法进行标记。

答案 1 :(得分:8)

不推荐使用XHTML和HTML的过渡性版本。对于不支持CSS的旧用户代理,它们只是 。请参阅explanation in the DTD

W3C建议你尽可能使用Strict,这些天肯定是可能的。

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


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

此外,如果您将文档发送为text/html,则无法使用HTML(命名空间,XML DOM)中不可用的任何XHTML功能,并且不幸的是,这与IE和其他设备的兼容性是必需的。仅限HTML的浏览器。

2008年正确的选择是HTML4严格:

  

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

但截至2016年,只有one version of HTML才重要。

 <!DOCTYPE html>

答案 2 :(得分:7)

我会为XHTML Transitional 1.0拍摄。还有一些不喜欢XHTML严格的细微差别,我现在看到的大多数编辑都会给你正确的推动,以确保事情做得正确。

答案 3 :(得分:3)

关于XHTML的使用,有一些compelling warnings,主要围绕这样一个文档的mime-type应该发送为:

Content-type: application/xhtml+xml

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

Content-type: text/html

不幸的是,该方法是considered harmful

有些人还哀叹,尽管XHTML的目的是使XML解析器可以解析网页,但实际上由于在现有网站上使用不当而失败了。

我仍然更喜欢在XHTML 1.0 Strict中编写文档,主要是因为挑战,以及cleanliness给出的validator和错误检查。我喜欢语法更好一点,因为它迫使我在标签结束时非常明确等等。对我来说,个人选择比纯技术更为明确。

答案 4 :(得分:3)

@Mike:

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

仅仅因为Web是一堆废话并不意味着每个新页面都需要成为一堆垃圾。 SO上的大多数验证错误都是如此微不足道,修复它不需要太长时间,比如缺少属性上的引号。

但它可能仍然毫无意义,因为W3C无论如何都不知道他们想去哪里(参见HTML 5)和某个大型浏览器公司也使得操作系统不关心好吧,所以一个网站也可以发送它的文档类型为HTML 1337糟透了,浏览器仍然会尝试渲染它。

答案 5 :(得分:2)

Dillie-O对XHTML 1.0 Transitional的回答是正确的,但我建议为XHTML 1.0 Strict拍摄,如果有一些功能你绝对需要Strict不允许,那么只会回到Transitional。

答案 6 :(得分:1)

如果您想以HTML兼容的方式使用XHTML 1.0,那很好。但是,请注意W3C验证器和XHTML DTD对mime类型以及浏览器之间的行为方式(例如&lt; map&gt; name / id匹配)一无所知。 DTD对浏览器支持某些元素(例如&lt; embed&gt;)的能力一无所知。

这意味着XHTML DTD和验证器不能反映现实并且试图符合它们是没有意义的。

如果您只想使用XHTML,可以使用/&gt;关闭某些元素。 (其中html兼容),只需使用HTML5标记(因此浏览器处于完全标准模式)。 HTML5允许使用/&gt;以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/确保它至少形成良好。

答案 7 :(得分:1)

无论您使用哪种流行标准,任何呈现您网页的内容都将会这样做。 XHTML更严格,可能“更好”,但我看不出一个标准比另一个标准更有优势。

答案 8 :(得分:1)

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

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

答案 9 :(得分:1)

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

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

重要提示:Avoid being called a bozo when producing XML

答案 10 :(得分:0)

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

XHTML是基于XML的,因此它允许更容易解析,您还可以使用大多数IDE的XML组件以编程方式查询和插入内容。

过渡并不像严格那样严格,这使得它相对容易使用,而严格则通常是PITA。 Comparison between Transistional and Strict

1.0比1.1更“兼容”,1.1似乎仍处于某种发展状态。

答案 11 :(得分:0)

我的目标是XHTML 1.0 Trans。最好遵循这样的规则,以便在浏览器中修复错误时,您不会突然发挥作用,试图找出实际需要更改的内容。

在我看来,1.1已被剔除,2.0被粉碎成碎片:我真的需要/想要一个页眉/页脚标签吗?

答案 12 :(得分:0)

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

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

答案 13 :(得分:-1)

HTML 4.0 Strict或ISO HTML。