在输出HTML表单的PHP文件中,我想知道我是否可以使用新的HTML5标签,例如电子邮件输入类型。最旧的浏览器是否会显示某些错误,或者我应该以某种方式区分PHP,例如通过USER_AGENT
和渲染:
<input type="text" />
而不是
<input type="email" />
在旧浏览器中(顺便说一下,同样的问题将适用于DOCTYPE
本身,我猜)。根据规格哪个最合适?
答案 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
感谢你!