[英]HTML version choice [closed]
在开发新的基于 Web 的应用程序时,您应该针对哪个版本的 html?
编辑:
很酷 我只是想从其他人那里得到感受 我倾向于在我自己的工作中使用 XHTML 1.0 Strict,而当其他人参与内容创建时,我倾向于使用 Transitional。
我将第一个 XHTML 1.0 Transitional 帖子标记为“正确答案”,但我坚信当时给出的所有答案都同样有效。
HTML 4.01。 除了您只想在“晦涩的”网络浏览器上运行的实验或学术问题之外,绝对没有理由使用 XHTML。
即使对于那些浏览器,XHTML Transitional 也完全没有意义,所以我不确定为什么有人会以此为目标。 许多人会建议这样做,这实际上非常令人担忧。
我会说以 HTML 4.01 为目标是最可预测的,但 Teifion 确实是对的,“任何呈现页面的事情都可以”。
回应迈克尔·斯图姆:
XHTML 是基于 XML 的,因此它可以更轻松地解析,您还可以使用大多数 IDE 的 XML 组件以编程方式查询和插入内容。
这当然不是真的。 网络上的许多 XHTML(如果不是大多数的话)都不符合 XML 有效性(并且不需要 - 它不是作为 XML 发送的)。 在处理 XML 时试图将其视为 XML 只会让您头疼。 例如,Stack Overflow 上的这个页面会因许多无情的 XML 工具产生无效标记而产生错误。
我会为 XHTML Transitional 1.0 拍摄。 仍然存在一些不喜欢 XHTML strict 的细微差别,我现在看到的大多数编辑器都会给您适当的提示以确保事情正确完成。
不推荐使用 XHTML 和 HTML 的过渡风格。 它们仅适用于不支持 CSS 的旧用户代理。 请参阅DTD 中的解释。
W3C 建议您应该尽可能使用 Strict,现在这当然是可能的。
XHTML/1.1 和 HTML5 中已经删除了过渡版本。
XHTML/1.0 具有与 HTML4 完全相同的元素和属性(语义)。 XHTML/1.0 规范甚至没有指定任何元素! 对于语法以外的任何其他内容,它指的是 HTML4。
此外,如果您将文档作为text/html
发送,您将无法使用 HTML 中不可用的任何 XHTML 功能(命名空间、XML DOM),不幸的是,这是与 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>
关于 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。
@麦克风:
虽然我同意使页面呈现不需要有效性(毕竟,我们必须保持 IE6 兼容性......),但创建兼容且有效的有效 XHTML 不是问题。 当人们习惯于 HTML 4 并使用折旧的标签和属性时,问题就开始了。
仅仅因为 Web 是一堆垃圾并不意味着每个新页面也必须是一堆垃圾。 SO 上的大多数验证错误都是微不足道的,不应该花太长时间来修复,比如缺少属性上的引号。
但这可能仍然毫无意义,因为 W3C 无论如何都不知道他们想要去哪里(参见 HTML 5)并且某个也制造操作系统的大型浏览器公司也不关心,所以一个站点也可以像 HTML 1337 Sucks 一样发送它的 doctype,浏览器仍然会尝试呈现它。
无论您使用哪种流行标准,任何呈现您页面的内容都会这样做。 XHTML 更严格,可能“更好”,但我看不出使用一种标准比另一种标准有什么优势。
如果您想以与 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/确保它至少格式良好。
我每次都支持 XHTML Strict。 我坚信 HTML 应该更像 XML。 如果您了解 XML,那么验证它并不难,而且 W3 的验证器无论如何都将您指向正确的轨道。
XHTML 2.0 正朝着 W3 长期以来的目标——语义网迈进。 XHTML 2.0 对我来说最大的好处是,网络上的每个符合标准的页面都可以理解为内容或文章(因为页面就是文档),因为它们都适用于相同的标准。 然后,您将能够构建以完全不同的方式呈现内容的解释器(即浏览器)- 这里有数以千计的想法等待着您。
如果您有工具可以像生成任何其他 XML 文档一样生成 XHTML,那么请使用 XHTML。 但是当你只使用纯文本模板、文本连接等时,你就可以使用旧的 HTML 4.01。
浏览器现在开始支持这个已有 10 年历史的标准。
重要提示:在生成 XML 时避免被称为 bozo
就个人而言,我更喜欢 XHTML 1.0 Transitional。
XHTML 是基于 XML 的,因此它可以更轻松地解析,您还可以使用大多数 IDE 的 XML 组件以编程方式查询和插入内容。
Transitional 不像 strict 那样严格,这使得它相对容易使用,与通常是 PITA 的 strict 相比。 Transitional 和 Strict 的比较
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 Strict,或 ISO HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.