css优雅降级和渐进增强
今天看前端公众号发布的文章,学到了几个新词
1、modernizr
2、@support
3、优雅降级
其中第三个“优雅降级”,如此文艺的名字居然还是第一次听到。度娘了一下,发现[优雅降级],[渐进增强]两个是相对的概念,总之上面三个词汇都与对css样式的支持息息相关。
所谓[优雅降级]与[渐进增强]并不难以理解,是不同的设计模式
[优雅降级]:通俗来讲,是我们首先满足的是“新“,比如当前的CSS3一些新的特性<canvas><video>……当前所流行的浏览器版本并不完全支持。也许由于我们的用户群体使用的浏览器版本绝大部分可以支持。那么
我们的设计可以先来满足这一部分的需求,但同时我们也要考虑到那些低版本的,不能兼容的改特性的浏览器,我们需要添加一些类似于'hack'的技术,使得低版本也可以看到我们要表达的效果。
[渐进增强]:相对于[降级]设计模式是,也许我们的受众群体绝大部分使用的是低版本的浏览器,因此我们实现我们的效果的时候,优先满足低版本的要求,但是对于那些高版本的,我们也会根据其新增效果来添加
新效果的实现方式。如我们需要显示用户的头像,低版本的里浏览器我们可以直接用方形显示,而且高版本的浏览器我们就可以使用radius实现其圆形的展示。
总之,两种设计模式的不同是由于侧重点不一样。
像优雅降级举得常见的例子中:
transition{
-webkit-transition: all .5s;
-moz-transition: all .5s;
-o-transition: all .5s;
transition: all .5s;
}
这些浏览器兼容顺序也是要根据每个浏览器对属性的支持,也要在实践中才能知道正确与否。
css优雅降级和渐进增强的更多相关文章
- CSS——优雅降级和渐进增强
什么是渐进增强(progressive enhancement).优雅降级(graceful degradation)呢? 渐进增强 progressive enhancement: 针对低版本浏览器 ...
- css可应用的渐进增强新特性
1. 让有滚动行为的元素平滑滚动 scroll-behavior: smooth; <div class="smooth"> </dvi> .smooth ...
- 浏览器兼容CSS渐进增强 VS 优雅降级如何选择
由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用CSS3,而在低级浏览器只保证最基本的功能.二者的目的都是关注不同浏览器下的不同体验,但是它们侧重点不同,所以 ...
- 渐进增强与优雅降级 && css3中普通属性和前缀属性的书写顺序
什么是渐进增强与优雅降级? 服务器和浏览器是不同的.当服务器有新版本时,开发人员直接使用新版本的服务器提供服务即可:但是浏览器端,不同的用户使用的浏览器版本不同,型号差异大,我们不可能让用户强制更新 ...
- 优雅降级&渐进增强
优雅降级(Graceful Degradation) 关注点:最新的浏览器上构建体验很好的WEB应用. 降级:旧版本浏览器提供差强人意的体验,不影响功能的使用. 渐进增强(Progressive En ...
- BFC与优雅降级 渐进增强——学习笔记
BFC(块级格式化上下文) BFC(Block formatting context) 直译为"块级格式化上下文". 元素的显示模式 我们前面讲过 元素的显示模式 display. ...
- css3渐进增强 VS 优雅降级
印象中,渐进增强和优雅降级这两个概念是在 CSS3 出现之后火起来的.由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器中使用CSS3,而在低级浏览器只保证最基本的功 ...
- 渐进增强 VS 优雅降级
渐进增强(Progressive Enhancement):一开始就针对低版本浏览器进行构建页面,完成基本的功能,然后再针对高级浏览器进行效果.交互.追加功能达到更好的体验. 优雅降级(Gracefu ...
- 渐进增强(progressive enhancement)、优雅降级(graceful degradation)
渐进增强 progressive enhancement: 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果.交互等改进和追加功能达到更好的用户体验. 优雅降级 grace ...
随机推荐
- rndc控制远程dns服务器配置方法
1- 如果不存在/etc/rndc.conf touch /etc/rndc.conf chown named:named /etc/rndc.conf 2- rndc-confgen > /e ...
- linux常用经典命令
1.查看cpu # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 #物理cpu个数 ...
- 求文件的m至n行
#!/usr/bin/env python def read_file(file_name,start,stop): start_line = 0 try: with open(file_name) ...
- 用"僵尸对象"调试内存管理问题
Cocoa提供了"僵尸对象"(Zombie Object)这个功能.启用这项调试功能之后,运行时系统会把所有已经回收的实例转化成特殊的"僵尸对象",而不会真正回 ...
- iOS,第三方库使用
1.ASIHttpRequest网络请求库 2.MBProgressHUD指示层库 3.Toast+UIView提示库 4.SDWebImage图片缓存库 5.MGSwipeTableCell单元格侧 ...
- [Android Tips] 6. Parallax ViewPager
文章 http://ryanhoo.github.io/blog/2014/07/16/step-by-step-implement-parallax-animation-for-splash-scr ...
- Scrum 项目 6.0 sprint演示
6.0----------------------------------------------------- sprint演示 1.坚持所有的sprint都结束于演示. 团队的成果得到认可,会感觉 ...
- Winform 主窗体更换 构造函数传值
制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...
- android cocos2d-x for Android安装和学习笔记(请用adt-bundle21.1或以上导入)
引用:http://weimingtom.iteye.com/blog/1483566 (20121108)注意:这篇文章用cdt编译ndk工程的内容已过时(现在可以用adt-bundle,避免配置繁 ...
- FORM 提示保存
修改的FORM在编译到测试环境后打开并没有修改什么数据,却提示是否保存,检查->system.form_satus 为"changed": 个人实际解决情况为:在数据块级的触 ...