我目前正在开发一个网站。在研究HTML5及其功能之后,我想继续学习它。我想使用离线存储,数据属性,简单的聊天支持等功能,但由于HTML5尚未得到很好的支持,我有点困惑。到目前为止,我一直使用XHTML 1.0过渡;我应该继续使用它还是应该使用HTML5?
我看到谷歌这样的网络巨头已完全转向HTML5。
答案 0 :(得分:6)
如果您的意思是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!
如果您的意思是新的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