找到做网站的公司,信息化工作总结 网站建设,dw网页制作教程练习,分类目录不要前缀wordpress由于低级浏览器不支持 CSS3#xff0c;但是 CSS3 特效太优秀不忍放弃#xff0c;所以在高级浏览器中使用CSS3#xff0c;而在低级浏览器只保证最基本的功能。二者的目的都是关注不同浏览器下的不同体验#xff0c;但是它们侧重点不同#xff0c;所以导致了工作流程上的不同… 由于低级浏览器不支持 CSS3但是 CSS3 特效太优秀不忍放弃所以在高级浏览器中使用CSS3而在低级浏览器只保证最基本的功能。二者的目的都是关注不同浏览器下的不同体验但是它们侧重点不同所以导致了工作流程上的不同。 百科解释 渐进增强Progressive Enhancement一开始就针对低版本浏览器进行构建页面完成基本的功能然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。 优雅降级Graceful Degradation一开始就构建站点的完整功能然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。 其实渐进增强和优雅降级并非什么新概念只是旧的概念换了一个新的说法。在传统软件开发中经常会提到向上兼容和向下兼容的概念。渐进增强相当于向上兼容而优雅降级相当于向下兼容。向下兼容指的是高版本支持低版本的或者说后期开发的版本支持和兼容早期开发的版本向上兼容的很少。大多数软件都是向下兼容的比如说Office2010能打开Office2007Office2006Office2005Office2003等建的word文件但是用Office2003就不能打开用Office2007Office2010等建的word文件 渐进增强和优雅降级的区别 优雅降级和渐进增强只是看待同种事物的两种观点。优雅降级和渐进增强都关注于同一网站在不同设备里不同浏览器下的表现程度。关键的区别则在于它们各自关注于何处以及这种关注如何影响工作的流程。 优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站。而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段并把测试对象限定为主流浏览器如 IE、Mozilla 等的前一个版本。在这种设计范例下旧版的浏览器被认为仅能提供“简陋却无妨 (poor, but passable)” 的浏览体验。你可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点因此除了修复较大的错误之外其它的差异将被直接忽略。 渐进增强观点则认为应关注于内容本身。请注意其中的差别我甚至连“浏览器”三个字都没提。内容是我们建立网站的诱因。有的网站展示它有的则收集它有的寻求有的操作还有的网站甚至会包含以上的种种但相同点是它们全都涉及到内容。这使得渐进增强成为一种更为合理的设计范例。 通过案例分析 看如下这两段代码的书写顺序表示了我们开发的着重点。 .transition { /*渐进增强写法*/ -webkit-transition: all .5s; -moz-transition: all .5s; -o-transition: all .5s; transition: all .5s; } .transition { /*优雅降级写法*/ transition: all .5s; -o-transition: all .5s; -moz-transition: all .5s; -webkit-transition: all .5s; } 前缀CSS3-webkit-* / -moz-* / -o-*和正常CSS3在浏览器中的支持情况是这样的 很久以前浏览器前缀CSS3和正常CSS3都不支持不久之前浏览器只支持前缀CSS3不支持正常CSS3现在浏览器既支持前缀CSS3又支持正常CSS3未来浏览器不支持前缀CSS3仅支持正常CSS3.渐进增强的写法优先考虑老版本浏览器的可用性最后才考虑新版本的可用性。在时期3前缀CSS3和正常CSS3都可用的情况下正常CSS3会覆盖前缀CSS3。优雅降级的写法优先考虑新版本浏览器的可用性最后才考虑老版本的可用性。在时期3前缀CSS3和正常CSS3都可用的情况下前缀CSS3会覆盖正常的CSS3。 就CSS3这种例子而言我更加推崇渐进增强的写法。因为前缀CSS3的某些属性在浏览器中的实现效果有可能与正常的CSS3实现效果不太一样所以最终还是得以正常CSS3为准。如果你好奇究竟是什么属性在前缀CSS3和正常CSS3中显式效果不一样可以看看这篇文章《需警惕CSS3属性的书写顺序》。 如何抉择 如果软件开发的预算和时间充足就不存在抉择的问题。然而现实很残酷要么开发周期短要么开发预算少或者二者兼而有之这个时候该如何抉择就我个人而言讲讲我的观点。 根据你的用户所使用的客户端的版本来做决定。请注意我的措辞我没有用浏览器而是用客户端。因为渐进增强和优雅降级的概念本质上是软件开发过程中低版本软件与高版本软件面对新功能的兼容抉择问题。服务端程序很少存在这种问题因为开发者可以控制服务端运行程序的版本就无所谓渐进增强和优雅降级的问题。但是客户端程序则不是开发者所能控制的你总不能强制用户去升级它们的浏览器吧。我们所谓的客户端可以指浏览器移动终端设备如手机平板电脑智能手表等以及它们对应的应用程序浏览器对应的是网站移动终端设备对应的是相应的APP。 现在有很成熟的技术能够让你分析使用你客户端程序的版本比例。如果低版本用户居多当然优先采用渐进增强的开发流程如果高版本用户居多为了提高大多数用户的使用体验那当然优先采用优雅降级的开发流程。 然而事实情况是怎么样的呢绝大多数的大公司都是采用渐进增强的方式因为业务优先提升用户体验永远不会排在最前面。例如新浪微博网站前端的更新拥有这种亿级用户的网站绝对不可能追求某个特效而不考虑低版本用户可不可用一定是确保低版本到高版本的可访问性再去渐进增强采用新功能给高版本用户提供更好的用户体验。但也不是没有反例。如果你开发的是一款面向青少年的软件或网站你知道这个群体的人总是喜欢尝试新事物总是喜欢酷炫的特效总是喜欢把它们的软件更新到最新版本而不像我们老一辈的用户。面对这种情况渐进增强的开发流程实为上选。 转载于:https://www.cnblogs.com/chaojiaheng/p/8564801.html