广义来说,其实要定义一个基准线,在此之上的增强叫做渐进增强,在此之下的兼容叫优雅降级。这个基准线对于我,是允许使用javascript、cookie和css的IE8浏览器。
不过狭义而言,渐进增强一般说的是使用CSS3技术,在不影响老浏览器的正常显示与使用情形下来增强体验,而优雅降级则是体现html标签的语义,以便在js/css的加载失败/被禁用时,也不影响用户的相应功能。
渐进增强的例子:
transition属性,用于在某个数值属性突然改变的时候,在一定时间段里面输出中间的值,类似于jQuery.animate实现的动态效果。
有何好处呢?使用jQuery.animate做动画的时候,是全浏览器兼容的,对于渲染效率低下、时不时有重绘bug的IE6、IE7,只会造成“页面卡”的感觉,并不会因此增强用户体验,若使用transition属性来做动画,则IE6~9是瞬间变化(并不会造成任何布局上的问题),而现代浏览器则是匀变。
虽然没有数据支持,但我一直觉得,用户的配置越好,他们使用现代浏览器的可能性更高,因此我们可以对使用现代浏览器的用户给予更好的体验。针对更现代的浏览器(通常这意味着更高的用户配置)做相应增强,并且不会影响旧浏览器的正常运行,大概就是渐进增强的意义吧。
优雅降级的例子:
假如你写了一个表单,没有用到表单元素,用了一个标签的click事件做提交,但如果Javascript被禁用了怎么办?
使用如下的文档结构,就可以在javascript被禁用时,依然可以提交。
<input type="text">
<input type="submit">
P.S. 其实优雅降级和渐进增强都是页面的加分项,是针对技术的一种形而上的要求。保证尽可能多的用户都能正常使用网站是第一步,在此之上才需要考虑降级的极端情形和现代浏览器的体验增强。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。