iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何检测浏览器对HTML5和CSS3支持度
  • 443
分享到

如何检测浏览器对HTML5和CSS3支持度

2024-04-02 19:04:59 443人浏览 薄情痞子
摘要

本篇内容主要讲解“如何检测浏览器对HTML5和css3支持度”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何检测浏览器对html5和CSS3支持度”吧! H

本篇内容主要讲解“如何检测浏览器对HTML5css3支持度”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何检测浏览器对html5和CSS3支持度”吧!

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

而 Modernizr 就可以帮助你完成对浏览器所支持 HTML5 特性的检查。

下面代码检测浏览器是否支持 Canvas:

复制代码

代码如下:

<script>

window.onload = function () {

if (canvasSupported()) {

alert('canvas supported');

}

};

function canvasSupported() {

var canvas = document.createElement('canvas');

return (canvas.getContext && canvas.getContext('2d'));

}

</script>

下面代码检测浏览器是否支持本地存储:

复制代码

代码如下:

<script>

window.onload = function () {

if (localStorageSupported()) {

alert('local storage supported');

}

};

function localStorageSupported() {

try {

return ('localStorage' in window && window['localStorage'] != null);

}

catch(e) {}

return false;

}

</script>

上面的两个例子中我们可以很直观的对浏览器的特性进行检查以确保我们在对应的浏览器上应用的功能能否正常运作。

而使用 Modernizr 的好处还在于你不需要这样一项项去检查,还有更简单的方法,下面我们开始:

当我第一次听到 Moderizr 这个项目时,我以为这是一个让一些老的浏览器能支持 HTML5 的 js 库,事实上不是,它主要是检测的功能。

Modernizr 可以通过网址 Http://modernizr.com 来访问,该网站同时还提供一个定制脚本的功能,你可以确定你需要检测什么特性,并依此来生成相应的 JS 文件,这样可以减少不必要的 JS 代码。 

2015625153003697.png (690&times;533)

 一旦下载了 Modernizr 的 JS 文件后,就可以通过 <script> 标签引入到网页中。

复制代码

代码如下:

<script src="Scripts/Modernizr.js" type="text/javascript"></script>

检测 HTML 元素

一旦我们在页面上引入了 Modernizr 后就可以立即使用,我们可以在 <html> 元素中声明不同的 CSS 类,这些类定义了所需要支持或者不支持的特性,不支持的特性其类名一般是 no-FeatureName,例如 no-flexbox。下面是一个在 chrome 上可运行的例子:

复制代码

代码如下:

<html class=" js flexbox canvas canvastext webGL no-touch geolocation postmessage

websqldatabase indexeddb hashchange history draganddrop webSockets rgba hsla

multiplebgs backgroundsize borderimage borderradius boxshadow textshadow opacity

cssanimations csscolumns cssgradients cssreflections csstransfORMs csstransforms3D

csstransitions fontface generatedcontent video audio localstorage sessionstorage webworkers

applicationcache svg inlinesvg smil svGClippaths">

还可以这样来判断浏览器是否启用了 JavaScript 支持:

复制代码

代码如下:

<html class="no-js">

你可以在 HTML5 Boilerplate (http://html5boilerplate.com) 或者是 Initializr (http://initializr.com) 看到一些入门的例子,根据上面的步骤,增加 no-js 类可以判断浏览器是否启用了 JavaScript 支持。

使用 HTML5 和 CSS3 特性

你为 <html> 标签增加的 CSS 属性,可以直接在 CSS 中定义所需要的样式,例如:

复制代码

代码如下:

.boxshadow #MyContainer {

border: none;

-webkit-box-shadow: #666 1px 1px 1px;

-moz-box-shadow: #666 1px 1px 1px;

}

.no-boxshadow #MyContainer {

border: 2px solid black;

}

如果浏览器支持 box-shadows 的话,将会为 <html> 元素增加 boxshadow 这个 CSS 类,否则的话就使用 no-boxshadow 这个类。这样假设浏览器不支持 box-shadow 的话,我们可以使用其他的样式来进行定义。

另外我们也可以使用 Modernizr 的对象来操作这个行为,例如下面的代码用来检测浏览器是否支持 Canvas 和 本地存储:

复制代码

代码如下:

$(document).ready(function () {

if (Modernizr.canvas) {

//Add canvas code

}

if (Modernizr.localstorage) {

//Add local storage code

}

});

全局的 Modernizr 对象同样可用于测试 CSS3 特性是否支持:

复制代码

代码如下:

$(document).ready(function () {

if (Modernizr.borderradius) {

$('#MyDiv').addClass('borderRadiusStyle');

}

if (Modernizr.csstransforms) {

$('#MyDiv').addClass('transformsStyle');

}

});

使用Modernizr加载脚本

在出现了浏览器不支持某些功能的的情况下,你不仅可以提供一个不错的备用方案,还可以加载shim/polyfill脚本在适当情况下填补缺失的功能 (想了解更多关于shims/polyfills的信息,请查看 https://GitHub.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills). Modernizr拥有一个内置的脚本加载器,可以用来测试一个功能,并在功能无效的时候加载另一个脚本. 脚本加载器是内置在Modernizr中的,并且是有效的独立yepnope(http://yepnopejs.com)脚本. 脚本加载器非常容易上手,它根据特定浏览器功能的可用性,真的会简化加载脚本的过程.

你可以使用Modernizr的load()方法来动态加载脚本,该方法接受定义被测功能的属性(test属性), 如测试成功后要加载的脚本(yep属性), 如测试失败后要加载的脚本(nope属性), 和无论测试成功还是失败都要加载的脚本(both属性). 使用load()及其属性的示例如下:

复制代码

代码如下:

Modernizr.load({

test: Modernizr.canvas,

yep: 'html5CanvasAvailable.js&rsquo;,

nope: 'excanvas.js&rsquo;,

both: 'myCustomScript.js'

});

在这个例子中Modernizr在加载脚本时还会测试是否支持canvas功能 . 如果目标浏览器支持HTML5 canvas就会加载html5CanvasAvailable.js脚本及 myCustomScript.js脚本 (在这个例子中使用yep属性有点牵强  &ndash; 这只是为了演示load()方法中的属性如何使用 ). 否则的话, 就会加载 excanvas.js这个 polyfill脚本来为IE9之前版本的浏览器添加功能支持 . 一旦excanvas.js被加载,myCustomScript.js也会接着被加载.

由于Modernizr会处理加载脚本, 所以你可以用它来做些别的事情. 比如, 在Google或微软提供的第三方CDN不管用的时候,你可以用Modernizr来加载本地的脚本. Modernizr文档中提供了在CDN挂掉后提供本地Jquery后备过程的示例:

代码会先尝试从Google CND加载jQuery. 一旦脚本下载完成(或者下载失败)就会调用某个方法. 这个方法会检查jQuery对象是否有效,如果无效就加载本地的jQuery脚本. 并在其后加载一个名为needs-jQuery.js的脚本.

到此,相信大家对“如何检测浏览器对HTML5和CSS3支持度”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何检测浏览器对HTML5和CSS3支持度

本文链接: https://www.lsjlt.com/news/92093.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何检测浏览器对HTML5和CSS3支持度
    本篇内容主要讲解“如何检测浏览器对HTML5和CSS3支持度”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何检测浏览器对HTML5和CSS3支持度”吧! H...
    99+
    2024-04-02
  • 怎么检测浏览器对HTML5和CSS3支持度
    本篇内容介绍了“怎么检测浏览器对HTML5和CSS3支持度”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&...
    99+
    2024-04-02
  • 如何检测浏览器是否支持CSS3
    这篇文章主要介绍“如何检测浏览器是否支持CSS3”,在日常操作中,相信很多人在如何检测浏览器是否支持CSS3问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何检测浏览器是否支...
    99+
    2024-04-02
  • 怎么检测浏览器是否支持html5视频
    这篇文章主要为大家展示了“怎么检测浏览器是否支持html5视频”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么检测浏览器是否支持html5视频”这篇文章吧。运...
    99+
    2024-04-02
  • 如何用HTML5 Canvas测试浏览器是否支持Canvas
    本篇内容介绍了“如何用HTML5 Canvas测试浏览器是否支持Canvas”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2024-04-02
  • 怎么检测浏览器是否支持WebWorker
    本篇内容介绍了“怎么检测浏览器是否支持WebWorker”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 如何实现让ie浏览器成为支持html5的浏览器
    本篇内容主要讲解“如何实现让ie浏览器成为支持html5的浏览器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现让ie浏览器成为支持html5的浏览器”吧...
    99+
    2024-04-02
  • 如何让IE浏览器支持CSS3圆角属性
    这篇文章主要为大家展示了“如何让IE浏览器支持CSS3圆角属性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何让IE浏览器支持CSS3圆角属性”这篇文章吧。 ...
    99+
    2024-04-02
  • jQuery如何检测浏览器
    这篇文章将为大家详细讲解有关jQuery如何检测浏览器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。检测浏览器注: 在版本jQuery 1.4中,$....
    99+
    2024-04-02
  • HTML5怎么测试浏览器是否支持Canvas的方法
    这篇文章主要介绍“HTML5怎么测试浏览器是否支持Canvas的方法”,在日常操作中,相信很多人在HTML5怎么测试浏览器是否支持Canvas的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • jQuery如何检测各种浏览器
    这篇文章将为大家详细讲解有关jQuery如何检测各种浏览器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。检测各种浏览器Detect Safari (if( $.browser...
    99+
    2023-06-27
  • 如何用JavaScript检测当前浏览器是无头浏览器
    目录什么是无头浏览器(headless browser)?为什么叫“无头”浏览器?为什么要检测无头浏览器?检测无头浏览器User agent插件 Plugins语言WebGL浏览器特...
    99+
    2024-04-02
  • 如何打开浏览器的JavaScript支持
    随着互联网技术的不断发展,网站变得越来越复杂,JavaScript也成为现代网站开发的一个重要组成部分。但是,在浏览网站时,有些人可能会遇到浏览器不支持JavaScript的情况。那么,如何打开浏览器的JavaScript支持呢?检查浏览器...
    99+
    2023-05-14
  • 如何使用JavaScript检测当前浏览器是无头浏览器
    这篇文章将为大家详细讲解有关如何使用JavaScript检测当前浏览器是无头浏览器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript是一种什么语言javascript是一种动态类型、弱类型...
    99+
    2023-06-14
  • 如何解决老式浏览器兼容HTML5和CSS3的问题
    这期内容当中小编将会给大家带来有关如何解决老式浏览器兼容HTML5和CSS3的问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.让老式浏览器支持HTML5 ...
    99+
    2024-04-02
  • 如何解决手机浏览器不支持position: fix
    本篇内容介绍了“如何解决手机浏览器不支持position: fix”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体是方法如下:css代码代...
    99+
    2023-06-08
  • 目前有哪些不被任何主流浏览器支持的CSS3属性
    本篇内容主要讲解“目前有哪些不被任何主流浏览器支持的CSS3属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“目前有哪些不被任何主流浏览器支持的CSS3属性”吧...
    99+
    2024-04-02
  • 如何让HTML5和CSS3网站在微软的浏览器中也能运行
    这篇文章给大家介绍如何让HTML5和CSS3网站在微软的浏览器中也能运行,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 起初,IE其实也是一款非常有进取心...
    99+
    2024-04-02
  • 如何使用JavaScript检测空闲的浏览器选项卡
    今天就跟大家聊聊有关如何使用JavaScript检测空闲的浏览器选项卡,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在某些情况下,当用户与我们的最终...
    99+
    2024-04-02
  • javascript如何实现浏览器用户代理检测脚本
    这篇文章给大家分享的是有关javascript如何实现浏览器用户代理检测脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作