Html5 学习之 Html5功能判断插件 Modernizr

---恢复内容开始---

Modernizr 浏览器对HTML5和CSS3开发的功能检测类库

由于当前用户使用的浏览器版本较多,对H5和CSS3的支持也各不相同。前端的开发者,在使用一些新的特性的时候,就比较的麻烦。需要去兼容各种浏览器,判断这些浏览器是否支持这些新的特性。

Modernizr可以帮助前端的开发者很好的解决这一问题。

Modernizr是什么?

官网的话说,Modernizr是一个JavaScript库,在用户的浏览器中监测对HTML5和CSS3功能支持。这也是我们的目的所在。

下面我们来通过一个简单的例子来说明一下不同浏览器对HTML5和CSS3的支持。

比如对于的HTML5的Canvas标签的支持。就目前的浏览器来说,Internet Explorer 9+, Firefox, Opera, Chrome 以及 Safari 支持 <canvas> 标签。但是ie9以下的版本是不支持Canvas的。

如果你的浏览器支持Canvas以下这段代码的效果就是下面的红色矩形图

<!DOCTYPE html>
<html>
<head>
    <title>Modernizr</title>
    <meta charset="utf-8" />
</head>
<body>
  <canvas style="background-color:red;">您的浏览器不支持Canvas</canvas>
</body>
</html>

如果不支持,就会显示一段话:您的浏览器不支持Canvas;

Madernizr 是怎么检测浏览器对HTML5和CSS3的功能支持呢?

只需要简单的引入Madernizr.js 。类库可以从官网下载到。分为压缩版和未压缩版。

下载下来后,我们只要在页面引用既可。

然后打开页面。从运行后的代码页面我们可以看到在html 标签里面多出了一些东西。这写就是Modernizr监测你所使用的浏览器对HTML5和CSS3的支持情况。

仔细看一下会发现, 在touch属性前面多出了一个"no-"的标签。这个就表示所使用的浏览器不支持touch属性。但是当我使用浏览器的开发工具模拟手机浏览器时,这边我模拟的是ipone 4,touch属性前面就没有"no-"的标签。因为现在的触屏手机浏览器都是支持touch属性的。

知道了Modernizr可以监测到浏览器对HTML5和CSS3的支持情况。下面再看一下我们怎么用Modernizr。

我们就以touch属性为例。Modernizr在页面加载初始化后,会创建一个名为MNodernizr的对象。对象的每个属性都是检测浏览器对HTML5和CSS3的属性支持的布尔值。

<!DOCTYPE html>
<html>
<head>
    <title>Modernizr</title>
    <meta charset="utf-8" />
    <script type="text/javascript" src="modernizr.js"></script>
    <script type="text/javascript">
    if (Modernizr.touch) {
        alert("浏览器支持touch");
    }else{
        alert("浏览器不支持touch");
    }
    </script>
</head>
<body>

</body>
</html>

另外不仅可以通过Javascript进行判断,还可以通过css的类名来进行判断。

<!DOCTYPE html>
<html>
<head>
    <title>Modernizr</title>
    <meta charset="utf-8" />
    <script type="text/javascript" src="modernizr.js"></script>
    <style type="text/css">
    .yes,.no{display: none}
    .touch .yes{display: block;}
    .no-touch .no{display: block;}

    </style>
</head>
<body>
<div class="yes">支持touch属性</div>
<div class="no">不支持touch属性</div>
</body>
</html>

页面很简答,当页面加载Modernizr类库后,如果浏览器支持touch,页面就会显示"支持touch属性",反之则显示“不支持touch属性”。

另外一些浏览器支持HTML5标签,但是标签的属性支持的并不全,只是支持其中的一部分。比如Audio标签。

Audio可以实现ogg,mp3,wav,m4a这4中基本的视频格式,如果一些浏览器只支持其中的一种,或者2种格式怎么样,这时候我们就可以用Modernizr来解决。

<script type="text/javascript">
    var audio = new Audio();
    audio.src = Modernizr.audio.ogg ? ‘xxx.ogg‘:
                Modernizr.audio.mp3 ? ‘xxx.mp3‘:
                Modernizr.audio.wav ? ‘xxx.wav‘:
                ‘xxx.m4a‘;
</script>

首先我们先创建一个Audio的对象,然后给对象附加src属性。通过Modernizr.audio.ogg,mp3,wav,m4a进行判断。然后赋值对于的视频文件。

虽然HTML5的出现,可以让我们使用大量新的标签,但是在目前很多用户还没有升级到最新浏览器的情况下,为了更好的用户体验度,我们前端的开发人员还需要去兼容一些不支持新特性的浏览器。

比方说,某个应用需要实现获取用户的经纬度信息,这里我们可以借助HTML的Golocation功能,单是对于一些老版本的浏览器,还无法实现。我们就需要用地方的控件或者服务去实现。如百度,谷歌提供的一些接口。

为了让开发者不需要关心浏览器层面的兼容问题,这时需要实现一个与HTML5的Golecation应用程序接口相同的代码包,Modernizr在这方面也提供了了对应的加载支持,示例代码如下:

Modernizr.load({
        test: Modernizr.geolocation, //判断条件
        yep : ‘geo.js‘,                 //支持geolocation加载的脚本
        nopt: ‘get-polyfill.js‘         //不支持geolocation加载的脚本
})
时间: 2024-10-12 05:48:48

Html5 学习之 Html5功能判断插件 Modernizr的相关文章

HTML5学习总结——HTML5入门与新增标签

一.HTML5概要 1.1.为什么需要HTML5 概念: HTML5 是继 HTML4.01, XHTML 1.0 和 DOM 2 HTML 后的又一个重要版本, 旨在消除富 Internet 程序(RIA)对 Flash, Silverlight, JavaFX 一类浏览器插件的依赖. 1991年HTML1.0标准出现1997年HTML4.0发布,4.0标准下的浏览器局限性Flash (安全与稳定堪忧.耗电.触摸.不开放)SilverlightJavaApplet2008年HTML5出现, W

[html5] 学习笔记-html5增强的页面元素

在 HTML5 中,不仅增加了很多表单中的元素,同时也增加和改良了可以应用在整个页面中的元素.重点包含 figure.figcaption.details.summary.mark.progress.meter.ol.dl.cite .small元素. 1.figure,figcaption元素 figure元素用来表示网页上一块独立的内容,可以是图片.统计图.代码实例. figcaption元素从属figure元素,表示figure元素的标题:一个figure元素只能放置一个figcaptio

HTML5学习笔记----html5与传统html区别

一. HTML5语法的改变 该知识点所说变化指的是基于HTML4基础上所定义的改变,主要有如下: HTML5的文件扩展符(.html或.htm)与内容类型(text/html)保持不变. HTML5中,刻意不使用版本声明,一份文档将会适用于所有版本的HTML. 从HTML5开始,对于文件的字符编码推荐使用UTF-8. HTML5确保了与之前HTML版本的最大程度的兼容性. 为了保证兼容性,需从元素说起,在HTML5.中,元素的标记可以省略.其体来说,元素的标记分为“不允许写结束标记”.“可以省略

【HTML5学习】HTML5学习整理笔记(二)

接上一篇 (六):HTML5样式,链接和表格 ①:HTML样式: 1.标签: <style>:样式定义 <link>:资源引用 2.熟悉: rel="stylesheet":外部样式表 type="text/css":引用文档的类型 margin-left:边距 HTML三种样式插入方法: 1.外部样式表: <link rel="stylesheet" type="text/css" href=&

HTML5学习总结——HTML5新增属性与表单元素

一HTML5新增属性 1.1contcxtmcnu contextmenu的作用是指定右键菜单. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="div1" style="height:900px; background

html5学习笔记(html5语义化)

Html5语义化:让机器可以读懂的内容,机器能读懂的就是标准了,就是新的这些个HTML5的标签了. 以前写html代码的时候呢 大多是DIV+CSS,这种div你可以拿他当头部当尾部当任何你需要表达含义的地方,正因为如此才让机器无法知道你这到底表达啥意思,于是语义化就有用了,给你一套标准,按这些规定的写,机器就能知道你表达的意思了. (语义网部分来源于:http://www.runoob.com/web/web-semantic.html) 而让机器读懂所需要的东西就是语义网.语义网技术,它包括

Html5学习系列

Html5学习系列 HTML5 规定了一种通过 video 元素来包含视频的标准方法 Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件 MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件 WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件 如需在 HTML5 中显示视频,您所有需要的是: <video src="movie.ogg" controls="controls&q

HTML5 学习笔记(一)——HTML5概要与新增标签

一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电.触摸.不开放). HTML5增强了浏览器的原生功能,符合HTML5规范的浏览器功能将更加强大,减少了Web应用对插件的依赖,让用户体验更好,让开发更加方便,另外W3C从推出HTML4.0到5.0之间共经历了17年,HTML的变化很小,这并不符合一个好产品的演进规则. 1.2.什么是HTML5 HTML5

HTML5 学习总结(一)——HTML5概要与新增标签

目录 一.HTML5概要 1.1.为什么需要HTML5 1.2.什么是HTML5 1.3.HTML5现状及浏览器支持 1.4.HTML5特性 1.5.HTML5优点与缺点 1.5.1.优点 1.5.2.缺点 1.6.HTML5效果展示 1.7.HTML5学习与开发工具 1.7.1.基础要求 1.7.2.开发工具 1.8.HTML5语法规则与文档声明 1.8.1.语法规则 1.8.2.文档声明 1.8.2.文档声明 二.废弃的标签 三.新增的标签 3.1.新增的结构标签 3.2.新增加其它元素 3