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

5 html xhtml standards html5 web-standards

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

我已经看到谷歌等网络巨头已完全转向HTML5.

Ale*_*rty 6

HTML5功能

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

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

对于大多数浏览器,以下CSS代码就足够了:

section, article, header, footer, nav, aside, hgroup {
  display: block;
}
Run Code Online (Sandbox Code Playgroud)

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

<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"
  </script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

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

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

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


HTML5 Doctype

如果你的意思是新的doctype <!DOCTYPE HTML>,这就是我要说的......

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

你可以看看规范上的W3C网站.简而言之,规范说这......

8.1.1 DOCTYPE

DOCTYPE是必需的前导码.

遗留原因需要DOCTYPE.省略时,浏览器倾向于使用与某些规范不兼容的其他渲染模式.在文档中包含DOCTYPE可确保浏览器尽最大努力遵循相关规范.

[...]

对于不能使用短DOCTYPE" <!DOCTYPE html>" 输出HTML标记的HTML生成器,可以将DOCTYPE遗留字符串插入DOCTYPE(在上面定义的位置).


SLa*_*aks 5

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

您可以使用您想要的任何功能; 您只需要知道哪些浏览器支持哪些功能.