HTML5和CSS3特性检测

 HTML5和CSS3逐渐成为WEB前端开发的必须技能,开发过程中检查不同浏览器对HTML5和CSS3支持情况成了是一件非常烦心的事情。

比如我们要检查某个浏览器是否支持canvas元素:

function SUP_canvas() {
var elem = document.createElement('canvas');
return !!(elem.getContext && elem.getContext('2d'));
};

是否支持WebGL:

function SUP_webgl() {
return !!window.WebGLRenderingContext;
};

还有很多html5和css3其他属性…,值得庆幸的是我们发现了Modernizr开源Javascript库

Modernizr是一个用来检测浏览器是否支持HTML5以及CSS3特性的基于MIT证书的开源Javascript库。Modernizr的 功能其实很简单,就是用js检测浏览器对HTML5/CSS3的特性支持情况,支持某个属性,就在页面的标 签上添加一个相应的class,不支持的话就添加一个no-前缀的class,比如,如果检测的浏览器支持video标签,MODERNIZR就会 在标签上添加video类,否则,添加no-video类。

最新的Modernizr是2.0.6版本的,如果你下载开发(development)版本,给我们提供全部的内容,如果要下载 production版本的modernizr,我们会发现,我们可以根据自己的需要进行订制。在其下载页面上,我们选择自己所需的HTML和CSS特 性,然后生成一个javascript文件。这么做会极大程度上减少冗余代码,减少不必要的检测,对web前端这个很看重用户体验的地方,性能就是一点一 点压出来的。

使用Modernizr也非常简单,只要而且必须在标签里应用就可以了,无需调用Modernizr_init()之类的初始化方法。 modernizr必须放在里,最好放在css声明之后,因为HTML5 Shiv(用以在IE中启用HTML元素)必须在之前执行,而且要使用modernizr添加的class,需要阻止FOUC。还有一点在于html声明 里的no-js的class。它设置了一个默认状态,如果页面禁用了javascript我们就可以知道了。

用调试工具我们看到在html标签里加了很多样式类,从这些样式类里我们可以完全看出您使用的浏览器对HTML5和CSS3支持情况,以“no-”开头的,就是这个浏览器不支持的特性:

知道了这些特性的支持情况我们就可以使用css选择器做一些表现上的差异,比如,如果不支持标签,那么test类文本为红色。
.canvas .test {
color: blue;
}

.canvas .test {
color: red;
}

同样,我们也可以在JavaScript利用这些特性检测的结果,代码:

if(Modernizr.canvas){
//开始画图啦!

}else{
alert("fuck!");
}

Modernizr 2还提供了一种load机制,方便代码管理,比如:

Modernizr.load({
test: Modernizr.canvas,//检查是否支持标签及相应的属性
yep : 'canvas.js',//如果支持标签及相应的属性那么加载canvas.js,
nope: 'no-canvas.js'//如果不支持标签及相应的属性那么加载no-canvas.js,
});

如果直接用的是development版本的modernizr,你会发现,根本就没有Modernizr.load,因为它是作为一个单独文件发布的:yepnope.js。而在production版本,我们选择将其包含在modernizr里。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索video标签
, 浏览器
, 标签
, canvas
, webgl
, js css3 canvas
, html5的特性
, html canvas css
, canvas css3
, 支持
, 特性
, html5前端css3
, js&C
Modernizr
html5 css3新特性、html5与css3新特性、html5css3有什么特性、html5 css3、html5 css3视频教程,以便于您获取更多的相关知识。

时间: 2025-01-19 18:30:25

HTML5和CSS3特性检测的相关文章

检测浏览器对HTML5和CSS3支持度的方法

  HTML5, CSS3 以及其他相关技术例如 Canvas.WebSocket 等等将 Web 应用开发带到了一个新的高度.该技术通过组合 HTML.CSS 和 JavaScript 可以开发出桌面应用具有的效果.尽管 HTML5 承诺很多,但现实中对 HTML5 支持的浏览器以及 HTML5 标准本身的完善程度都还没有到一个很成熟的程度.现在完全不担心浏览器支持是不现实的,还需要时间,因此当我们决定要采用 HTML5 技术开发 Web 应用的时候,我们需要对浏览器所支持的特性进行检测. 而

JavaScript快速检测浏览器对CSS3特性的支持情况_javascript技巧

在项目中需要快速检测浏览器是否支持某CSS3特性,比如检测是否支持"transform",然后我的布局会有两种完全不同的版式. 当然除开本文介绍的这种快速方法,还有一种更有名和更通用的方法,那就是modernizr,运行脚本之后它会在html的class上加上浏览器支持的所有特性的列表. 优点: js是可配置的,不需要的特性检测可以在配置脚本中去掉基于特性检测js库简单好用 除此之外还有一种不太好的方法,那就是判断浏览器的UA,不好的原因是UA可能会伪造,而且版本判断繁琐,还有不稳定.

必须知道的HTML5的新特性,技巧以及技术

总结一下: 1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<figure>和<figcaption>来语义化地表示带标题的图片 <figure> <img src="path/to/image" alt="About image" /> <figcaption> <p>This is an im

使用HTML5 和CSS3创建现代Web站点

开始之前本教程假定您具有 HTML.CSS 和 JavaScript 的一些基本经验.假定您知道什么是 HTML 元素或标记.属性表示什么.HTML 标记的基本语法.Web 页面的常规结构等等.关于 CSS,您应该熟悉元素.类.以及基于 ID 的选择器.CSS 特性的语法以及如何使用内嵌或外部样式表在您的 Web 页面中包括 CSS.最后,假定您具有一些 JavaScript 的工作知识,例如什么是变量.函数.if 语句和 for 循环以及如何在您的 Web 页面中包括 JavaScript 代

《HTML5移动开发》—— 第1章 学习移动HTML5、CSS3和Java Script API之前的准备工作

第1章 学习移动HTML5.CSS3和Java Script API之前的准备工作 HTML5移动开发如果你跟我多少有点类似的话,你肯定已经痛恨旧版IE浏览器很多年了.那些浏览器满是失败.然而,它们在整个生命周期内在任何地方失败的方式是一样的[1].我们都知道IE6非常糟糕,但是它糟糕的方式是一样的.一旦我们搞清楚了如何填IE6的坑(polyfill[2]),我们就已经把它搞清楚了. 在移动世界,我们同样面临一些问题,不同的是这些问题以一种更新.更多样化且不断变化的方式存在.在不同设备上的不同浏

HTML5和CSS3表单:HtmlCss教程

在文中汇总几个HTML5和CSS3资源教程网站,为Web诱导人员提供了细致参考指南.htmlcss.以下是文章摘要: 本教程演示如何利用HTML5建立既时髦又好用的邮箱注册表单.领导民众一步一步建立占位符文本.表单域.邮箱+网络+手机.日程采用器等功用.你知道jQuery.有大局限的表单为了加强功用却低沉输出框的程序.你看jQuery.固然在旧版本的观赏器中并不完好支柱HTML5特性,HTML5.但在教程中会演示如何治理和精确增加新功用.css3. 此教程属于中等难度,JavaScript.演示

揭秘HTML5和CSS3【珍珠奶茶帮】

分享人:空雁 互联网的发展总是在不断地催生新技术的产生,而HTML5和CSS3是最近一直被讨论的热门话题,对于每个互联网开发者尤其是前端开发者而言,都充满了好奇与渴望.那么HTML5和CSS3究竟有哪些让我们眼前一亮的东西呢?我在WebRebuild北京交流会和珍珠奶茶帮上给大家分享了<揭秘 HTML5和CSS3>,PPT在这里: http://docs.google.com/present/view?id=dhpdbrp_51hf88z8g8 HTML5 HTML 5草案的前身名为Web A

CSS3+HTML5实例:HTML5和CSS3制作登录表单

文章简介:HTML5提供了一些新的元素可以让我们不用JS轻松实现实用的web表单,CSS3提供了很多新的特性,这些特性允许实现新的设计效果(比如动画.渐变等).  HTML5提供了一些新的元素可以让我们不用JS轻松实现实用的web表单,CSS3提供了很多新的特性,这些特性允许实现新的设计效果(比如动画.渐变等). 这里做了一个基于HTML5和CSS3的登录表单.实例代码使用到HTML5提供的一些表单新特性,所以你需要使用支持HTML5和CSS3的浏览器来查看. HTML5代码: <form id

HTML5/CSS3的开发框架:实用HTML5和CSS3框架

文章简介:所有的开发人员都应该注意了,你们绝对应该看看这篇文章,帮助你快速创建HTML5/CSS3的开发框架.可能你也看到过其它的框架,但是你应该看看这些框架,因为你以前可能没用过他们中的大部分.看看最新的实用HTML5和CSS3框架吧! 所有的开发人员都应该注意了,你们绝对应该看看这篇文章,帮助你快速创建HTML5/CSS3的开发框架.可能你也看到过其它的框架,但是你应该看看这些框架,因为你以前可能没用过他们中的大部分.看看最新的实用HTML5和CSS3框架吧!希望你们喜欢! 1.HTML5b