Php 如何正确使用HTML5新标记以与旧浏览器兼容

Php 如何正确使用HTML5新标记以与旧浏览器兼容,php,html,forms,email,Php,Html,Forms,Email,在输出HTML表单的PHP文件中,我想知道是否可以使用新的HTML5标记,例如电子邮件输入类型。最老的浏览器是否会显示一些错误,或者我是否应该通过USER\u AGENT以某种方式区分PHP,并呈现: <input type="text" /> 而不是 <input type="email" /> 在旧浏览器中(顺便说一句,我想同样的问题也适用于DOCTYPE本身)。根据规范,哪一个最合适?如果有一个库可以帮助您在旧浏览器上使用“新标签”如果有一个库可以帮助

在输出HTML表单的PHP文件中,我想知道是否可以使用新的HTML5标记,例如电子邮件输入类型。最老的浏览器是否会显示一些错误,或者我是否应该通过
USER\u AGENT
以某种方式区分PHP,并呈现:

<input type="text" /> 

而不是

<input type="email" />


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

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

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

幸运的是,存在一种变通方法,允许旧浏览器识别这些新元素,允许对它们进行样式设置,从而让我们充分利用这些新的语义标记。这是一个叫做HTML5的工具。 正如链接的谷歌页面上所指出的,“shiv”和“shim”在这种情况下是可互换的术语。 但是我们是如何从IE甚至不承认这个元素的存在,到现在能够使用它的呢? 诀窍是调用document.createElement(“section”)会突然导致IE识别section元素。没有人知道为什么,但它可以工作,您甚至不需要使用该函数返回的节点。 但是,在使用这些元素之前,你需要确保在你的网站中尽早调用它,否则它将无法工作。 您需要为每个新的HTML5元素调用它,如以下代码:


“abbr文章旁白音频bdi画布数据列表详细信息figcaption图”+
“页脚页眉H组主标记仪表导航输出进度部分”+
“摘要模板时间视频”
.replace(/w+/g,函数(a){document.createElement(a)});

注意,我们使用string对象的replace方法简洁地迭代正则表达式匹配的每个连续长度的字符,并为每个字符块执行回调函数,然后调用createElement。 在中,我们将此方法称为“shivingthedocument”,以便该文档能够呈现新的HTML5元素

最好使用更新版本的浏览器,除非您正在使用旧浏览器重新安装某些东西!:D


谢谢你

幸运的是,存在一种变通方法,允许旧浏览器识别这些新元素,允许对它们进行样式设置,从而让我们充分利用这些新的语义标记。这是一个叫做HTML5的工具。 正如链接的谷歌页面上所指出的,“shiv”和“shim”在这种情况下是可互换的术语。 但是我们是如何从IE甚至不承认这个元素的存在,到现在能够使用它的呢? 诀窍是调用document.createElement(“section”)会突然导致IE识别section元素。没有人知道为什么,但它可以工作,您甚至不需要使用该函数返回的节点。 但是,在使用这些元素之前,你需要确保在你的网站中尽早调用它,否则它将无法工作。 您需要为每个新的HTML5元素调用它,如以下代码:


“abbr文章旁白音频bdi画布数据列表详细信息figcaption图”+
“页脚页眉H组主标记仪表导航输出进度部分”+
“摘要模板时间视频”
.replace(/w+/g,函数(a){document.createElement(a)});

注意,我们使用string对象的replace方法简洁地迭代正则表达式匹配的每个连续长度的字符,并为每个字符块执行回调函数,然后调用createElement。 在中,我们将此方法称为“shivingthedocument”,以便该文档能够呈现新的HTML5元素

最好使用更新版本的浏览器,除非您正在使用旧浏览器重新安装某些东西!:D


谢谢你

可能重复:旧浏览器中未知类型的输入类型始终呈现为type=text。但你最好问问自己,这是否真的值得付出努力。目前所有的浏览器基本上都支持HTML5,而HTML5已经存在了一段时间,如果浏览器不支持HTML5,那么继续使用HTML5的风险可能太大。我只想接受新标准,迎合旧浏览器只会鼓励用户不要升级。这可能是重复的:旧浏览器中未知类型的输入类型总是呈现为type=text。但你最好问问自己,这是否真的值得付出努力。目前所有的浏览器基本上都支持HTML5,而HTML5已经存在了一段时间,如果浏览器不支持HTML5,那么继续使用HTML5的风险可能太大。我只想接受新标准,迎合旧浏览器只会鼓励用户不要升级。在2016年,除了HTML5 Shiv(可能还有)之外,做任何事情都是在浪费时间,只会影响不到5%的用户。如果你在5%的网站上浪费时间,其他95%的网站将无法获得足够快的功能。@apokryfos-这实际上取决于谁会使用网站,即使是在最利基的用例中,HTML5和Response也应该足够了。然而,如果这确实是一个利基案例,那么就根本不要使用HTML5。在2016年,除了HTML5 Shiv(可能的话)之外,做任何事情都是在浪费时间,只会影响不到5%的用户。如果你在5%的网站上浪费时间,其他95%的网站将无法获得足够快的功能。@apokryfos-这实际上取决于谁会使用网站,即使是在最利基的用例中,HTML5和Response也应该足够了。然而,如果它确实是这样一个利基案例,那么就根本不要使用HTML5。