基于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旋转——彩色扇子兼容firefox浏览器
Jun 04 HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
Nov 10 HTML / CSS
利用纯css3实现的文字亮光特效的代码演示
Nov 27 HTML / CSS
浅谈CSS3中display属性的Flex布局的方法
Aug 14 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
Aug 01 HTML / CSS
鲜为人知的HTML5语音合成功能
May 17 HTML / CSS
整理HTML5中表单的常用属性及新属性
Feb 19 HTML / CSS
使用HTML5里的classList操作CSS类
Jun 28 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
Dec 09 HTML / CSS
Html5嵌入钉钉的实现示例
Jun 04 HTML / CSS
AmazeUI 输入框组的示例代码
Aug 14 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
Sep 16 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
php后退一页表单内容保存实现方法
2012/06/17 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php统计数组元素个数的方法
2015/07/02 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
php中上传文件的的解决方案
2018/09/25 PHP
JS之小练习代码
2008/10/12 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
java必学必会之static关键字
2015/12/03 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
js 获取html5的data属性实现方法
2017/07/28 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
毕业纪念册寄语大全
2015/02/26 职场文书
大二学年个人总结
2015/03/03 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
分享几个简单MySQL优化小妙招
2022/03/31 MySQL
MySQL 原理与优化之Update 优化
2022/08/14 MySQL