基于Modernizr 让网站进行优雅降级的分析


Posted in HTML / CSS onApril 21, 2013

  如今一个网页展现的内容是越来越丰富,其中不乏一些HTML5、CSS3的功能特效。那么如果客户端的浏览器支持HTML5。页面访问效果很好没有问题。如果不支持HTML5,还是IE6,7,8等浏览器的时候呢?这个时候往往是作为一个前段人员非常头痛的事情了,兼容。

  此时的兼容。无非是让用户能够尽可能的在所有的浏览器的里面看上去,使用上都是一致的。但是页面使用了HTML5标签,使用了CSS3样式。客户端浏览器不支持HTML5,怎么办呢?对于这样的问题,我们只能做到,能支持多少给支持多少。不能支持得给个友好提示和建议。让用户升级到更高版本的浏览器。所以在制作的编码过程中我们要进行一些功能性的检测.假设我们要做一个圆角效果。使用CSS3,HTML5 非常方便。

<style>
            article  
            
{
                background
: lightblue;
                margin
: 20px;
                padding
: 5px;                
                width
: 350px;
                border-radius
: 10px;
                box-shadow
: 4px 4px 10px rgba(0, 0, 0, 0.5);
            
}
            article h1 
{ font-size: 12px; }
        
</style>
<article>
            <header><h1>我的标题</h1></header>
            <p>这个地方是内容</p>
        </article>

 出现的效果也我们预期的是一样的

基于Modernizr 让网站进行优雅降级的分析

如果客户端浏览器不支持HTML5? 我们来用IE的F12工具测试一下

注意:浏览器模式和文档模式都必须进行选择

基于Modernizr 让网站进行优雅降级的分析

 

在不支持HTML5的浏览器中页面效果是非常残酷的

基于Modernizr 让网站进行优雅降级的分析

 

对于这样的问题是我们必须进行修复的。所以没有办法,针对于不支持HTMl5的浏览器要多做一些工作。怎么解决这样一个圆角效果的兼容呢?肯定是对不支持HTMl5的浏览器做判断。如果不支持HTML5圆角我们用第三方的圆角js来做。问题又来了?如何进行这样一个圆角功能做判断呢?这个时候又迟疑了。有没有一个针对HTML5比较高效全面简洁的功能判断js呢?

http://modernizr.com/ Modernizr 一个HTML5功能检测插件。

  还是上方圆角特效,稍作修改

 注意:pie.js 为第三方的圆角插件

<script type="text/javascript" src="Scripts/modernizr-2.0.6.min.js"></script>
        <style>
            article  
            
{
                background
: lightblue;
                margin
: 20px;
                padding
: 5px;                
                width
: 350px;
                border-radius
: 10px;
                box-shadow
: 4px 4px 10px rgba(0, 0, 0, 0.5);
            
}
            article h1 
{ font-size: 12px; }
        
</style>
        <article>
            <header><h1>我的标题</h1></header>
            <p>我的内容</p>
        </article>
    <script>
        Modernizr.load([{
            load: 
'Scripts/jquery-1.6.1.min.js',
            complete: 
function () {
                
if (!window.jQuery) {
                    Modernizr.load(
'Scripts/jquery-1.6.1.min.js');
                }
            }
        },
        {
            test: Modernizr.borderradius 
|| Modernizr.boxshadow,
            nope: 
'Scripts/PIE.js',
            callback: 
function () {
                $(
'article').each(function () {
                    PIE.attach(
this);
                });
            }
        }]);
    
</script>

 

来看效果:支持HTML5的浏览器

基于Modernizr 让网站进行优雅降级的分析

 

接下来看不支持HTML5的浏览器 IE7 做测试

基于Modernizr 让网站进行优雅降级的分析

 

所以通过使用Modernizr做HTMl5页面的功能检测是非常方便。但是还是会存在一个问题? 如果是做了一个丰富的画布特效,如何做到兼容呢?此时还是回到开始的那句话,功能降级,能支持多少支持多少,不能支持的给与友好提示。还是期待国内用户快些升级上支持HTML5的浏览器,这样开发人员就不会这么痛苦了。

HTML / CSS 相关文章推荐
利用CSS3制作简单的3d半透明立方体图片展示
Mar 25 HTML / CSS
css3 实现圆形旋转倒计时
Feb 24 HTML / CSS
微信浏览器左上角返回按钮拦截功能
Nov 21 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
Apr 10 HTML / CSS
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
Jan 09 HTML / CSS
使用HTML5的File实现base64和图片的互转
Aug 01 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
Apr 24 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
May 11 HTML / CSS
HTML5实现视频弹幕功能
Aug 09 HTML / CSS
CSS实现fullpage.js全屏滚动效果的示例代码
Mar 24 HTML / CSS
详解Html5项目适配系统深色模式方案总结
Apr 14 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
Apr 21 #HTML / CSS
html5+css3实现一款注册表单实例
Apr 17 #HTML / CSS
程序设计HTML5 Canvas API
Apr 08 #HTML / CSS
html5与css3小应用
Apr 03 #HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
Apr 01 #HTML / CSS
html5 拖拽上传图片实例演示
Apr 01 #HTML / CSS
html5 跨文档消息传输示例探讨
Apr 01 #HTML / CSS
You might like
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
javascript实现划词标记+划词搜索功能
2007/03/06 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
非常优秀的JS图片轮播插件Swiper的用法
2017/01/03 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
深入解读Python解析XML的几种方式
2016/02/16 Python
python if not in 多条件判断代码
2016/09/21 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
python实现推箱子游戏
2020/03/25 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
如何在pycharm中安装第三方包
2020/10/27 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
英国女装网上商店:I Saw It First
2018/10/18 全球购物
香港中原电器网上商店:Chung Yuen
2019/06/26 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
结婚邀请函范文
2014/01/14 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
大学生就业意向书范文
2014/04/01 职场文书
会计工作岗位职责
2015/02/03 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
八一建军节主持词
2015/07/01 职场文书
毕业班工作总结
2015/08/10 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis