基于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 Flexbox中flex-shrink属性的用法示例介绍
Dec 30 HTML / CSS
CSS3,线性渐变(linear-gradient)的使用总结
Jan 09 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
Jan 12 HTML / CSS
利用canvas实现图片下载功能来实现浏览器兼容问题
May 31 HTML / CSS
Html5新标签解释及用法
Feb 17 HTML / CSS
Html5+JS实现手机摇一摇功能
Apr 24 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
Feb 19 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
Apr 23 HTML / CSS
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
Apr 22 HTML / CSS
Canvas绘制像素风图片的示例代码
Sep 25 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性能的21种方法介绍
2013/06/25 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
Jquery实现顶部弹出框特效
2015/08/08 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
基于vue2的table分页组件实现方法
2017/03/20 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
2018/09/21 Javascript
Nuxt.js之自动路由原理的实现方法
2018/11/21 Javascript
浅谈js闭包理解
2019/04/01 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
详解Python做一个名片管理系统
2019/03/14 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
暑期社会实践感言
2014/02/25 职场文书
应届大专生求职信
2014/06/26 职场文书
社区清明节活动总结
2014/07/04 职场文书
企业务虚会发言材料
2014/10/20 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL