如何正确使用HTML5新标签与旧版浏览器兼容

时间:2016-03-17 11:05:10

标签: php html5 forms email

在输出HTML表单的PHP文件中,我想知道我是否可以使用新的HTML5标签,例如电子邮件输入类型。最旧的浏览器是否会显示某些错误,或者我应该以某种方式区分PHP,例如通过USER_AGENT和渲染:

<input type="text" /> 

而不是

<input type="email" />

在旧浏览器中(顺便说一下,同样的问题将适用于DOCTYPE本身,我猜)。根据规格哪个最合适?

2 个答案:

答案 0 :(得分:1)

如果有一个库可以帮助您在旧浏览器上使用“新标记”HTML5 Shiv

答案 1 :(得分:1)

幸运的是,我们存在一种解决方法,允许旧浏览器识别这些新元素,从而可以对它们进行样式化,从而充分利用这些新的语义标记。这是一个名为HTML5Shiv的工具。 如链接的Google页面所述,“shiv”和“shim”在此上下文中是可互换的术语。 但我们是如何从IE甚至不承认这个元素的存在,到现在能够使用它? 诀窍是调用document.createElement(&#34; section&#34;)会突然导致IE识别section元素。没有人知道原因,但它可以工作,你甚至不需要使用该函数返回的节点。 但是在使用任何元素之前,您需要确保在网站的早期调用它,否则它将无法工作。 您需要为每个新的HTML5元素调用它,如下面的代码:

"abbr article aside audio bdi canvas data datalist details figcaption figure "+ "footer header hgroup main mark meter nav output progress section " + "summary template time video" .replace(/w+/g, function(a){ document.createElement(a) });

注意我们正在使用字符串对象的replace方法简洁地迭代正则表达式匹配的每个连续字符长度,并为每个字符块执行回调函数,而后者又调用createElement。 在这里,我们将调用此方法“shivving the document”,以便文档可以呈现新的HTML5元素。

除非您使用旧版浏览器重新注册内容,否则最好使用较新版本的浏览器! :d

感谢你!