提问人:sparkes 提问时间:8/7/2008 最后编辑:sparkes 更新时间:6/21/2016 访问量:1616
HTML 版本选择 [已关闭]
HTML version choice [closed]
问:
在开发一个新的基于 Web 的应用程序时,您应该瞄准哪个版本的 html?
编辑:
很酷,我只是想从别人那里得到感觉,我倾向于在我自己的工作中使用 XHTML 1.0 Strict,当其他人参与内容创作时,我倾向于使用 Transitional。
我将第一篇 XHTML 1.0 过渡文章标记为“正确答案”,但我坚信当时给出的所有答案都同样有效。
答:
我会拍摄 XHTML Transitional 1.0。仍然有一些细微差别不喜欢 XHTML 的严格要求,我现在看到的大多数编辑器都会给你适当的提示,以确保事情做对了。
评论
无论您使用哪种流行标准,呈现页面的任何内容都会这样做。XHTML更严格,可能“更好”,但我看不出一个标准比另一个标准有什么优势。
就我个人而言,我更喜欢 XHTML 1.0 Transitional。
XHTML是基于XML的,因此它允许更容易的解析,并且您还可以使用大多数IDE的XML组件以编程方式查询和插入内容。
过渡不像严格那样严格,这使得它相对容易使用,而严格通常是 PITA。Transistional 和 Strict 之间的比较
1.0 比 1.1 “更兼容”,而 1.1 似乎仍在某种开发中。
Dillie-O 对 XHTML 1.0 Transitional 的回答是正确的,但我建议拍摄 XHTML 1.0 Strict,并且只有在您绝对需要 Strict 不允许的某些功能时才使用 Transitional。
HTML 4.01的。除了实验性或学术性问题之外,绝对没有理由将XHTML用于您只想在“晦涩难懂”的Web浏览器上运行的问题。
XHTML Transitional 即使对那些浏览器来说也完全没有意义,所以我不确定为什么有人会以此为目标。实际上,很多人会推荐它,这实际上是非常令人震惊的。
我想说以 HTML 4.01 为目标是最可预测的,但 Teifion 确实是对的,“任何呈现页面的东西都可以”。
在回应迈克尔·斯塔姆(Michael Stum)时:
XHTML是基于XML的,因此它允许更容易的解析,并且您还可以使用大多数IDE的XML组件以编程方式查询和插入内容。
这当然不是真的。Web 上的许多 XHTML(如果不是大多数)都不符合 XML 有效性(而且它不需要 - 它不是作为 XML 发送的)。在处理它时,试图将其视为 XML,只会让你头疼不已。例如,Stack Overflow 上的这个页面会因标记无效而生成许多无情的 XML 工具的错误。
我的目标是 XHTML 1.0 Trans。最好遵守,这样当浏览器中的错误得到修复时,您就不会突然争分夺秒地试图找出实际需要更改的内容。
在我看来,1.1 很无聊,2.0 已经被粉碎了:我真的需要/想要一个页眉/页脚标签吗?
@Mike:
虽然我同意使页面呈现不需要有效性(毕竟,我们必须保持IE6兼容性...),但创建兼容且有效的有效XHTML不是问题。当人们习惯于 HTML 4 并使用已弃用的标签和属性时,问题就开始了。
仅仅因为 Web 是一堆废话,并不意味着每个新页面也需要一堆废话。SO 上的大多数验证错误都是微不足道的,修复时间应该不会太长,例如属性上缺少引号。
但这可能仍然有点毫无意义,因为 W3C 无论如何都不知道他们想去哪里(参见 HTML 5),而且某个也制造操作系统的大型浏览器公司也不在乎,所以一个网站也可以发送它的文档类型,因为 HTML 1337 很烂,浏览器仍然会尝试呈现它。
我每次都支持XHTML Strict。我坚信HTML应该更像XML。如果你知道 XML,那么验证它并不难,而且 W3 的验证器无论如何都会让你走上正确的轨道。
XHTML 2.0 正朝着 W3 长期以来的目标——语义网迈进。对我而言,XHTML 2.0 的最大好处是,Web 上每个符合要求的页面都可以理解为内容或文章(因为这就是页面的本质 - 文档),因为它们都适用于相同的标准。然后,您将能够构建以完全不同的方式呈现内容的集成器(即浏览器)——这里有成千上万的想法在等着你。
关于XHTML的使用,有一些令人信服的警告,主要集中在这样一个事实上,即此类文档的mime类型应发送为:
Content-type: application/xhtml+xml
然而,IE 6 和 7 不支持此功能,然后网站必须将其发送为:
Content-type: text/html
不幸的是,这种方法被认为是有害的。
一些人还哀叹这样一个事实,即尽管XHTML的目的是使网页可被XML解析器解析,但由于现有网站上的不正确使用,它实际上已经失败了。
我仍然更喜欢用 XHTML 1.0 Strict 编写文档,主要是因为挑战,以及验证器提供的清洁度和错误检查。我更喜欢这种语法,因为它迫使我在标签结束等方面非常明确。对我来说,这更像是个人选择,而不是纯粹的技术选择。
评论
不推荐使用 XHTML 和 HTML 的过渡风格。它们仅适用于不支持 CSS 的旧用户代理。请参阅 DTD 中的说明。
W3C 建议您尽可能使用 Strict,现在这当然是可能的。
XHTML/1.1 和 HTML5 中已经删除了过渡版本。
XHTML/1.0 具有与 HTML4 完全相同的元素和属性(语义)。XHTML/1.0 规范甚至没有指定任何元素!对于语法以外的任何内容,它指的是 HTML4。
此外,如果将文档作为 发送,您将无法使用 HTML 中不可用的任何 XHTML 功能(命名空间、XML DOM),并且与 IE 和其他纯 HTML 浏览器的兼容性是必需的。text/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>
如果您想以与 HTML 兼容的方式使用 XHTML 1.0,那很好。但是,请注意,W3C 验证器和 XHTML DTD 对 MIME 类型以及浏览器之间的行为差异(如 <map>名称/ID 匹配)一无所知。DTD 对浏览器对某些元素(例如<嵌入>)的支持程度也一无所知。
这意味着 XHTML DTD 和验证器不能反映现实,试图符合它们是没有意义的。
如果你想使用 XHTML,以便你可以用 /> 关闭某些元素(其中与 html 兼容),只需使用 HTML5 标记(因此浏览器处于完全标准模式)。HTML5 允许以与 HTML 兼容的方式使用 />(与将 XHTML 1.0 标记与 text/html 一起使用时必须以与 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/ 来确保它至少是良好的格式。
我不认为你使用XHTML还是纯HTML并不重要。这里的最终目标是通过可预测的渲染实现低维护和快速开发。你可以通过使用 xhtml 或 html 来获取它,只要你有验证代码。我甚至听说过最好以怪癖模式为目标的论点,因为新版本的浏览器不会改变怪癖模式,因此维护很容易。
最后,这一切都变成了标签汤,这是有充分理由的,因为让 Web 应用程序开发人员编写无错误的 html 意味着要求他们编写无错误的代码。验证者无济于事,因为它们只验证初始页面浏览量。这也是为什么我从未见过 xhtml 中作为 xml 用于静态站点之外的任何内容。Web 应用程序开发人员需要将其 Web 应用程序作为 xml 提供其 Web 应用程序的傲慢程度令人震惊。
HTML 4.0 Strict 或 ISO HTML。
评论
如果您有像任何其他 XML 文档一样生成 XHTML 的工具,那么请使用 XHTML。但是,当您只使用纯文本模板、文本连接等时,您就可以使用旧的 HTML 4.01。
浏览器现在开始支持这个已有 10 年历史的标准。
重要提示:在生成 XML 时避免被称为 bozo
评论