应该为公共网站选择哪个HTML版本

时间:2011-01-21 16:02:43

标签: html html5 xhtml standards web-standards

我目前正在开发一个网站。在研究HTML5及其功能之后,我想继续学习它。我想使用离线存储,数据属性,简单的聊天支持等功能,但由于HTML5尚未得到很好的支持,我有点困惑。到目前为止,我一直使用XHTML 1.0过渡;我应该继续使用它还是应该使用HTML5?

我看到谷歌这样的网络巨头已完全转向HTML5。

4 个答案:

答案 0 :(得分:6)

HTML5功能

如果您的意思是HTML5功能,那么您必须了解HTML5的真正含义。我会定义它具有以前规格的高潮以及更新和更丰富的功能。它用于支持现有内容(向后兼容)并支持Web应用程序的创建。真正令人敬畏的是它不仅止步于此。它首次说明了浏览器应该如何处理错误处理。

现在,您需要知道并非所有功能都在浏览器中实现。您可以使用HTML5 browser test来了解哪些有效,哪些无效。这并不意味着他们不会工作!大多数浏览器实际上允许您使用和设计您想要发明的任何元素。新的HTML5标签在不支持它们的浏览器中没有默认样式。

对于大多数浏览器来说,以下 CSS 代码已足够:

section, article, header, footer, nav, aside, hgroup {
  display: block;
}

与往常一样,Internet Explorer(IE)有特殊需求。只有,有一个名为Remy Sharp的JavasScript魔术师创建了一个JavaScript文件,为IE创建每个元素。所以你可以在你的页面中添加它:

<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"
  </script>
<![endif]-->

顺便说一句,您必须使用JavaScript才能测试新HTML5元素的存在,并为那些浏览器不具备某些HTML5元素和属性的浏览器提供替代选择。这就是为什么有这个小的通用JavaSCript函数可以用来做到这一点:

function elementSupportsAttribute(element, attribute) {
  var test = document.createElement(element);
  if(attribute in test)
    return true;
  else
    return false;
}

最后一点,我从书HTML5 For Web Designers获得了大部分信息。感谢Jeremy Keith!


HTML5 Doctype

如果您的意思是新的doctype <!DOCTYPE HTML>,那么我就要说了......

在HTML5中使用以前的HTML / XHTML版本的功能并不违法。请注意,新doctype没有与之关联的任何数字。这是因为它旨在构建现有规范并对未来版本有效。因此,我说你选择了新的doctype。

您可以查看W3C网站上的spec。简而言之,规范说明了......

  

8.1.1 DOCTYPE

     

DOCTYPE是必需的序言。

     

旧版需要DOCTYPE   原因。省略时,浏览器倾向于   使用不同的渲染模式   与某些人不相容   规格。包括DOCTYPE   在文档中确保浏览器   尽最大的努力   遵循相关规范。

     

[...]

     

出于HTML的目的   无法输出HTML的生成器   使用短DOCTYPE标记   “<!DOCTYPE html>”,DOCTYPE遗产   字符串可以插入   DOCTYPE(在定义的位置   上文)。

答案 1 :(得分:5)

HTML5是一组与大多数无关的功能。

您可以使用您想要的任何功能;你只需要知道which browsers support which features

答案 2 :(得分:1)

完全取决于网站的用户,以及他们的浏览器支持的功能。正如SLaks所说,HTML5不是一个全有或全无的主张。

Mark Pilgrim有两个关于通过JavaScript检测HTML功能支持的好章节(这是唯一可行的方法):

您使用的方法与开发人员一直用于前端Web代码的方法相同 - 使用新功能的方式使得没有该功能的用户仍然可以使用该网站,即使体验不是对他们来说很光滑。

答案 3 :(得分:1)

与其他语言不同,您不必在HTML 5和XHTML之间进行选择。我认为您的问题是在HTML源代码顶部看到DOCTYPE字符串。您应该包含DOCTYPE,但浏览器支持并不重要。

要问的正确问题是,是否有浏览器支持您要使用的功能。每个浏览器都支持HTML 5的部分功能,因为大多数HTML 5与HTML 4和XHTML相同。考虑您的目标受众以及他们可能使用的浏览器,然后查看这些浏览器支持您要使用的功能的程度。

简而言之,您无需决定是否要使用HTML 5,如果该功能得到足够的支持,您需要逐个功能地逐个决定(无论该功能是否为HTML) 5特定功能与否。)

这是浏览器支持某些HTML 5新功能的良好资源:http://www.findmebyip.com/litmus