zoukankan      html  css  js  c++  java
  • Modernizr 让网站进行优雅降级

      如今一个网页展现的内容是越来越丰富,其中不乏一些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>

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

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

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

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

    对于这样的问题是我们必须进行修复的。所以没有办法,针对于不支持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的浏览器

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

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

    作者:risk
    出处:http://www.cnblogs.com/risk
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    可持久化+Trie || BZOJ 3261最大异或和 || Luogu P4735 最大异或和
    费用流+SPFA ||Luogu P3381【模板】最小费用最大流
    费用流+SPFA ||【模板】最小费用最大流
    Dinic二分图匹配 || Luogu P3386
    Dinic最大流 || Luogu P3376 【模板】网络最大流
    fhq_treap || BZOJ1861: [Zjoi2006]Book 书架 || Luogu P2596 [ZJOI2006]书架
    fhq_treap || BZOJ 3223: Tyvj 1729 文艺平衡树 || Luogu P3391 【模板】文艺平衡树(Splay)
    fhq_treap || BZOJ 3224: Tyvj 1728 普通平衡树 || Luogu P3369 【模板】普通平衡树
    Manacher || BZOJ 2342: [Shoi2011]双倍回文 || Luogu P4287 [SHOI2011]双倍回文
    Manacher || P4555 [国家集训队]最长双回文串 || BZOJ 2565: 最长双回文串
  • 原文地址:https://www.cnblogs.com/risk/p/2589753.html
Copyright © 2011-2022 走看看