Skip to content

[css] 第9天 简述下你理解的优雅降级和渐进增强 #26

Open
@haizhilin2013

Description

@haizhilin2013
Collaborator

第9天 简述下你理解的优雅降级和渐进增强

Activity

tiyunchen

tiyunchen commented on Jun 1, 2019

@tiyunchen

https://segmentfault.com/a/1190000013818745

现在项目没有考虑过这个问题,都是一套css

poporeki

poporeki commented on Jul 4, 2019

@poporeki

优雅降级,先做好一个完善的具备完整体验的版本,再向下做兼容。
渐进增强,先做好一个可以基本正常使用的版本,再慢慢丰富体验和内容。

Konata9

Konata9 commented on Jul 24, 2019

@Konata9

总结了一下前面老哥的回答。

渐进增强和优雅降级这两个概念是在 CSS3 出现之后火起来的。由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用 CSS3,而在低级浏览器只保证最基本的功能。

优雅降级

先不考虑兼容,优先最新版本浏览器效果,之后再逐渐兼容低版本浏览器。

渐进增强

考虑兼容,以较低(多)浏览器效果为主,之后再逐渐增加对新版本浏览器的支持,以内容为主。也是多数公司所采用的方法。

参考文章:前端面试题-渐进增强和优雅降级

yyz841875845

yyz841875845 commented on Dec 23, 2019

@yyz841875845

只用最新chrome ,完结。

PullAndRun

PullAndRun commented on Feb 6, 2020

@PullAndRun

优雅不起来。引导用户下载chrome。
猴子猩猩原始人才用IE

linzowo

linzowo commented on Mar 23, 2020

@linzowo

我个人的观点是。不管是哪种都需要先有一个结实的基本html框架才行。字面上说优雅降级和渐进增强都是先开发一个最高或最低版本,然后按需增加适应。但是如果在前期没有搭好一个健壮的框架,那后面有一些功能实现上,难免可能会修改html结构,这就导致前面写好的内容可能要被推翻重做。

blueRoach

blueRoach commented on May 26, 2020

@blueRoach

优雅降级:在编写项目时,直接针对最高级、最稳定的版本进行开发。然后在后续对低版本进行兼容。
渐进增强:在编写项目时,针对自己想个兼容的最低版本进行开发。然后在后续对高版本的新特性开发,或者更好的体验

giggleCYT

giggleCYT commented on Jun 3, 2020

@giggleCYT

渐进增强(Progressive Enhancement):一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验。

优雅降级(Graceful Degradation):一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。

在传统软件开发中,经常会提到向上兼容和向下兼容的概念。渐进增强相当于向上兼容,而优雅降级相当于向下兼容

smile-2008

smile-2008 commented on Sep 3, 2020

@smile-2008

优雅降级
先不考虑兼容,优先最新版本浏览器效果,之后再逐渐兼容低版本浏览器。

渐进增强
考虑兼容,以较低(多)浏览器效果为主,之后再逐渐增加对新版本浏览器的支持,以内容为主。也是多数公司所采用的方法。

GodEnd

GodEnd commented on Mar 21, 2021

@GodEnd

优雅降级是先写一套兼容最新的浏览器的方案,再向之前的浏览器做兼容。
渐进增强是先从之前低级的版本的浏览器做一套功能最简单的方案,再逐步向上兼容,增强功能。

pangyutong

pangyutong commented on Mar 22, 2021

@pangyutong

Math.floor Math.ceil
你品 你细品

xiezhenghua123

xiezhenghua123 commented on Apr 11, 2021

@xiezhenghua123

优雅降级:先考虑最新浏览器,然后再向下考虑兼容的问题
线性增强:先考虑最坏的兼容情况,然后添加新浏览器特性

amikly

amikly commented on Oct 27, 2021

@amikly

优雅降级(graceful degradation)

一开始就构建站点的完整功能,然后再针对低版本浏览器进行兼容

比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览

优雅降级的写法,优先考虑新版本浏览器的可用性,最后才考虑老版本的可用性

而在现在前缀CSS3和正常CSS3都可用的情况下,前缀CSS3会覆盖正常的CSS3

渐进增强(Progressive Enhancement)

一开始就针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互、追加功能达到更好的体验

渐进增强的写法,优先考虑老版本浏览器的可用性,最后才考虑新版本的可用性

在现在前缀CSS3和正常CSS3都可用的情况下,正常CSS3会覆盖前缀CSS3

总结

优雅降级是从复杂的现状开始,并试图减少用户体验的供给

而渐进增强则是从一个非常基础的、能够起作用的版本开始,并不断扩充,以适应未来环境的需要

选择

低版本用户居多,则优先采用渐进增强的开发流程

高版本用户居多,则为了提高大多数用户的使用体验,那当然优先采用优雅降级的开发流程

业务优先,提升用户体验永远不会排在最前面

最重要的还是保证尽可能多的用户可以正常访问网站,在此之后再考虑降级的极端情形和现代浏览器的体验增强

6 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @smile-2008@haizhilin2013@PullAndRun@Konata9@WangXi01

        Issue actions

          [css] 第9天 简述下你理解的优雅降级和渐进增强 · Issue #26 · haizlin/fe-interview