这个问题的启发有点 这个问题, ,其中获得最多支持的答案建议使用 HTML 5 的功能。对我来说,这当然是一个好方法,但它让我对使用未来规范中的功能感到好奇。

HTML 5 提供了许多不错的改进,其中许多改进可以在当前浏览器中使用而不会引起问题。

一些例子:

// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>

许多新功能旨在使浏览器能够自动验证表单,并为它们提供更好的输入(例如日期选择器)。有些只是方便,似乎是为未来做好准备的好方法。

目前,它们不会破坏当前浏览器中的任何内容(据我所知),并且它们允许干净、通用的客户端代码。

然而,尽管它们在 HTML 5 中都有效,但它们对于 HTML 4 无效,并且 HTML 5 目前仍是草案。

尽早使用这些功能是个好主意吗?

它们是否存在我没​​有意识到的浏览器实现问题?

我们现在应该开发利用 HTML 5 草稿功能的网页吗?

有帮助吗?

解决方案

有几件事需要考虑:

  1. 首先,验证并不意味着那么多,因为HTML页面很有效,但编写得很糟糕,无法访问等。请参阅说成”有效的HTML“图标发送XHTML作为text / html认为有害(参考hobo-web另一个回复中提到的测试)
  2. 鉴于此,我强烈建议使用新的DOCTYPE:在HTML5中使用它的唯一原因是它是在浏览器中触发标准模式的最小的东西,所以如果你想要标准模式,那就去吧;你几乎没有理由使用另一个,冗长,容易出错的DOCTYPE
  3. 对于表单增强功能,您可以使用Weston Ruter的 webforms2 JS库来实现它适用于不知情的浏览器
  4. 最后,关于 data - * 属性,它a)适用于所有浏览器(只要你使用 getAttribute()),b)仍然更好而不是滥用 title class 属性和c)将不会打扰你的验证,因为我们之前说过,验证不是重要(当然是,但如果有效性错误是故意的,那么页面无效并不重要;并且您已经可以在W3C验证器中使用HTML5验证,所以......);所以也没有真正的理由不使用它们。

其他提示

好问题!

简而言之:这取决于您的背景和风险承受能力:)

稍微长一点:

  • 思考 尽早采用技术来挑战极限总是好的。它使您在商业世界中比后来者更具优势,并且还使您在影响技术出现时拥有更大的影响力。

  • 如果您不想重新编写代码或更新源代码,那么早期采用可能不适合您。想要编写可靠、稳定且永远不需要更改的代码是完全值得尊重的,但这完全取决于您(以及您的业务环境)

如果您的网页在很大程度上依赖于搜索引擎展示位置,那么可能值得考虑一些引擎优先验证HTML(来源: http://www.hobo-web.co.uk/seo-blog/index.php/official-谷歌-喜欢-有效-HTML的CSS / )。

另外,值得考虑的是依赖于新的日期输入元素(例如Opera中的那些元素,可能还有其他元素)可以让开发人员更方便,它通常会排除包含更复杂的Javascript控件,哪个更好服务器较旧的浏览器(通常会回退到简单的文本输入字段)。

当然,与往常一样,不要依赖浏览器端检查并验证所有输入服务器端。

在至少在一个浏览器中测试之前,请不要使用新功能。例如,如果您使用now form功能,请务必在Opera中进行测试。否则,你可能会因为有毒的遗产做出贡献而弊大于利。

当某项功能已在浏览器中实施并且您正在使用这些浏览器进行测试时,请务必使用新功能。

另请参阅旧答案

请参阅稳健性原则

  

在RFC 761(传输控制   协议,1980)美国计算机   科学家Jon Postel总结道   早期的预期沟通   互操作性标准   互联网协议(参见IEN 111 1 ,RFC   760)如下:

     

TCP实施应该遵循   鲁棒性的一般原则: be   保守的你做的事,是的   你接受的自由主义   其他

所以,imho,不。

我不会在HTML中实现新功能,直到至少他们得到所有主流浏览器的支持。

客户端不关心您的页面是否有效,如果它跨浏览器工作,他们更关心。即使我们努力实施最新标准,仍然会有客户和公司永远不会放弃他们的IE6,IE6将会在他们的浏览器要求列表上停留一段时间。

欢迎新的表单类型,但是必须在服务器端检查表单。

传递HTML5现有文档需要付出很多努力和调整,而且我估计不会在一夜之间发生。预计至少会有3年才会成为主流。

我会使用HTML 5只是为了娱乐和学习,但最终我不会用这个新标准触及我的任何生产代码(现有代码),至少到现在为止,直到我有正当理由支持这一举措

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top