基于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实现的闪烁跳跃进度条示例(附源码)
Aug 19 HTML / CSS
结合CSS3的布局新特征谈谈常见布局方法
Jan 22 HTML / CSS
几个CSS3的flex弹性盒模型布局的简单例子演示
May 12 HTML / CSS
html5调用摄像头功能的实现代码
May 07 HTML / CSS
html5 乒乓球(碰撞检测)实例二
Jul 25 HTML / CSS
HTML5计时器小例子
Oct 15 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
Apr 24 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
HTML5页面中尝试调起APP功能
Sep 12 HTML / CSS
localStorage、sessionStorage使用总结
Nov 17 HTML / CSS
MIME类型中application/xml与text/xml的区别介绍
Jan 18 HTML / CSS
bootstrapv4轮播图去除两侧阴影及线框的方法
Feb 15 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关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
深入探讨前端框架react
2015/12/09 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
2018/08/31 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
Python set集合类型操作总结
2014/11/07 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
在Java开发中如何选择使用哪种集合类
2016/08/09 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
需求分析说明书
2014/05/09 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
Python编解码问题及文本文件处理方法详解
2021/06/20 Python
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA