基于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 相关文章推荐
修复iPhone的safari浏览器上submit按钮圆角bug
Dec 24 HTML / CSS
用CSS3来实现社交分享按钮
Nov 11 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
Apr 25 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
Jul 16 HTML / CSS
html5+css3之制作header实例与更新
Dec 21 HTML / CSS
HTML5中canvas中的beginPath()和closePath()的重要性
Aug 24 HTML / CSS
简单html5代码获取地理位置
Mar 31 HTML / CSS
HTML5+CSS3绘制锯齿状的矩形
Mar 01 HTML / CSS
html5+css如何实现中间大两头小的轮播效果
Dec 06 HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
Mar 19 HTML / CSS
详解如何使用rem或viewport进行移动端适配
Aug 14 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 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
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python random模块用法解析及简单示例
2017/12/18 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
Python pandas库中的isnull()详解
2019/12/26 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
MIS软件工程师的面试题
2016/04/22 面试题
如何安装ruby on rails
2014/02/09 面试题
高校毕业生登记表自我鉴定
2013/11/03 职场文书
岗位职责范本
2013/11/23 职场文书
社区中秋节活动方案
2014/01/29 职场文书
研发工程师岗位职责
2014/04/28 职场文书
十大最强飞行系宝可梦,BUG燕上榜,第二是飞行系王者
2022/03/18 日漫