html - 应该为公共(public)网站选择哪个 HTML 版本

标签 html xhtml standards web-standards

我目前正在做一个网站。在学习了 HTML5 及其特性之后,我想继续使用它。我想使用离线存储、数据属性、简单聊天支持等功能,但由于 HTML5 还没有得到很好的支持,我有点困惑。直到现在我一直使用 XHTML 1.0 transitional;我应该继续使用它还是应该使用 HTML5?

我看到像 google 这样的网络巨头已经完全转向 HTML5。

最佳答案

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 文档类型

如果您指的是新文档类型 one <!DOCTYPE HTML> ,这就是我要说的......

在 HTML5 中使用以前 HTML/XHTML 版本的功能并不违法。请注意,新文档类型没有任何与之关联的数字。这是因为它旨在建立在现有规范的基础上并对 future 版本有效。因此,我建议您使用新的文档类型。

你可以看看spec在 W3C 网站上。简而言之,规范是这样说的……

8.1.1 The DOCTYPE

A DOCTYPE is a required preamble.

DOCTYPEs are required for legacy reasons. When omitted, browsers tend to use a different rendering mode that is incompatible with some specifications. Including the DOCTYPE in a document ensures that the browser makes a best-effort attempt at following the relevant specifications.

[...]

For the purposes of HTML generators that cannot output HTML markup with the short DOCTYPE "<!DOCTYPE html>", a DOCTYPE legacy string may be inserted into the DOCTYPE (in the position defined above).

关于html - 应该为公共(public)网站选择哪个 HTML 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4760882/

相关文章:

standards - PHP/C/C++ - 您的初始注释 block 在您的程序中看起来如何?

javascript - jqtransform 和折叠的 DIV

javascript - 我怎样才能拥有能够扩展一行中所有列的 Bootstrap 文本区域

javascript - 我需要在网页中制作一个按钮来放大和缩小(辅助功能控件)(禁用友好)

html - 将文本与居中的图标对齐

html - 在XHTML文档的grails中使用JSOUP获取两个不同标签之间的文本

C# 强制使用字典键

c++ - 基本类型

php - 如何从 php 获取选定的单选按钮值 onclick

javascript - Java FX 从 Webview 中的网页元素获取响应