基于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 相关文章推荐
CSS心形加载的动画源码的实现
Mar 09 HTML / CSS
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
Feb 07 HTML / CSS
CSS中几个与换行有关的属性简明总结
Apr 15 HTML / CSS
css3 盒模型以及box-sizing属性全面了解
Sep 20 HTML / CSS
css3 边框、背景、文本效果的实现代码
Mar 21 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
Aug 24 HTML / CSS
把富文本的回车转为br标签
Aug 09 HTML / CSS
htnl5利用svg页面高斯模糊的方法
Jul 20 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
Aug 28 HTML / CSS
做一个能自适应高度的textarea的示例代码
Sep 06 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
Oct 08 HTML / CSS
html+css实现分层金字塔的实例
Jun 02 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
模仿OSO的论坛(五)
2006/10/09 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
教你php如何实现验证码
2016/01/20 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
php常用正则函数实例小结
2016/12/29 PHP
javascript json 新手入门文档
2009/12/03 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
pygame学习笔记(4):声音控制
2015/04/15 Python
Python中的ctime()方法使用教程
2015/05/22 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Django QuerySet查询集原理及代码实例
2020/06/13 Python
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
作风转变年心得体会
2014/10/22 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
电信营业员岗位职责
2015/04/14 职场文书
2016中学教师读书心得体会
2016/01/13 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL