最近我读完了Filament Group的《渐进增强设计》。在书中,他们谈到了在测试浏览器功能的基础上提供两个级别的支持。如果浏览器通过了测试,它将获得基于基本功能的增强体验。如果浏览器出现故障,它只会获得基本的体验。从理论上讲,这是完全合理的,并真正让人明白,这就是网站应该建立的方式。
写完这本书后,我看了enhance.js,这是他们在书中介绍的一个测试浏览器功能的脚本(https://github.com/filamentgroup/EnhanceJS以及自那本书以来的新版本https://github.com/filamentgroup/enhance)。在脚本中,没有一种方法可以像我预期的那样测试特定的css功能。当然,您可以测试框模型支持,但如果我的布局依赖于display:table呢?有人在测试这样的功能吗?这样做是否切实可行?
Modernizr是一个流行的库,提供类似的功能测试。下载页面上可以选择大量的预构建测试,其中包括一个用于测试display: table
的测试(非核心检测部分中的css displaytable)。它们还包含一组polyfill,可以帮助弥补您可能想要使用的一些缺失功能。