系列文章讲解原文所有的web开发者都会很快(或者痛苦地)意识到Web是一个粗糙的环境,而最糟糕的一点就是旧的浏览器。说到“老浏览器”,我们往往会想到老版本的IE。但事实上,老式浏览器不止一种。一年前的Firefox,例如ESR版本,也被认为是旧的。在移动端,由于部分浏览器和操作系统无法升级,导致很多旧安卓手机或iPhone上的浏览器都不是最新的,也属于老浏览器。令人沮丧的是,我们的部分工作是在旧浏览器的荒野中度过的。但幸运的是,有一些技巧可以帮助解决80%由旧浏览器引起的问题。理解问题其实首先要做的就是阅读这些浏览器的文档,尝试理解共同的部分。例如,CSS支持是HTML表单的一个主要问题,如果您刚刚开始,您应该首先检查您要使用的元素(或DMO接口)的支持。尽管MDN上提供了许多网页使用的元素、属性和API的兼容性表;其他资源也可以提供很大的帮助:浏览器开发者文档Mozilla:就在你现在的位置(译注:MDN)微软:InternetExplorerStandardsSupportDocumentationOpera:OperaWebKit中的Web规范支持:由于该引擎有多个不同的版本,因此需要一些技巧找到相应的文档:Webkit博客和PlanetWebkit总结了一些Webkit内核开发人员有史以来最好的文章。Chromium网站也很重要。Apple网站上也有关于各种技术支持级别的信息,第三方文档CanIUse。QuirksMode是关于浏览器兼容性的优秀资源。它的移动部分是最好的。PositionIsEverything是有关旧浏览器渲染问题及其修复方法的最佳资源。MobileHTML5有很多移动浏览器兼容性信息,不仅是那些“前5名浏览器”(译注:可能包括Apple、Android、Nokia、Amazon、Blackberry)让事情变得简单,因为HTML表单包含很多复杂的交互,我们有记住一条规则:尽可能简单。很多时候,我们想让表单“漂亮”或者“功能高级”,但是构建一个高效的HTML表单并不能单靠设计或者技术来解决。建议花一些时间阅读这篇关于UXForTheMasses的表单可用性文章。优雅降级是Web开发人员最好的朋友。优雅降级和渐进增强是两种开发范式,可让您通过同时支持多种浏览器来构建出色的产品。当您在现代浏览器上构建某些东西并希望确保它在旧浏览器上工作时,您正在使用优雅降级。接下来,让我们看一些HTML表单的例子:HTML输入框类型HTML5带来的输入框类型非常酷,因为它们退化的方式是可以预见的。如果浏览器无法识别元素的type属性值,它将回退到文本类型。
