基于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的rem属性制作响应式页面布局的要点解析
May 24 HTML / CSS
网页布局中CSS样式无效的十个重要原因详解
Aug 10 HTML / CSS
需要知道的CSS3动画技术
Jan 01 HTML / CSS
CSS3实例分享--超炫checkbox复选框和radio单选框
Sep 01 HTML / CSS
css3的focus-within选择器的使用
May 11 HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
Jul 07 HTML / CSS
html5教你做炫酷的碎片式图片切换 (canvas)
Jul 28 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
Apr 07 HTML / CSS
HTML5 drag和drop具体使用详解
Jan 18 HTML / CSS
CSS3实现的3D隧道效果
Apr 27 HTML / CSS
六个好看实用的 HTML + CSS 后台登录入口页面
Apr 28 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
MySQL数据源表结构图示
2008/06/05 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
简约JS日历控件 实例代码
2013/07/12 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
jQuery pager.js 插件动态分页功能实例分析
2019/08/02 jQuery
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python和Sublime整合过程图示
2019/12/25 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python圣诞树编写实例详解
2020/02/13 Python
python随机模块random使用方法详解
2020/02/14 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
爱护公物标语
2014/06/24 职场文书
青年标兵事迹材料
2014/08/16 职场文书
西岭雪山导游词
2015/02/06 职场文书
2015年库房工作总结
2015/04/30 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
HTML常用标签超详细整理
2022/03/19 HTML / CSS