JavaScript判断浏览器对CSS3属性是否支持的多种方法


Posted in Javascript onNovember 13, 2016

前言

CSS3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候。比如transitionanimation-play-state,就只有部分浏览器支持。

下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性:

第一种:javascript比较常用下面这个代码:

var support_css3 = (function() {
 var div = document.createElement('div'),
  vendors = 'Ms O Moz Webkit'.split(' '),
  len = vendors.length;
 
 return function(prop) {
  if ( prop in div.style ) return true;
 
  prop = prop.replace(/^[a-z]/, function(val) {
   return val.toUpperCase();
  });
 
  while(len--) {
   if ( vendors[len] + prop in div.style ) {
   return true;
   } 
  }
  return false;
 };
})();

使用:检查是否支持transform

if(support_css3('transform')){

}else{

}

第二:JavaScript方法2:不支持ie6

function isPropertySupported(property)
{
 return property in document.body.style;
}

使用:

记得上面的属性,要用backgroundColor替换background-color

if(isPropertySupported('opacity')){

}else{

}

第三:CSS.supports

CSS.suports是CSS3 @support 规则中比较特别的一个,每一个支持@support规则的都支持下面这个函数(不推荐这种方法,毕竟@support也有兼容性,某些浏览器可能支持CSS3属性中的一个,但却不支持@support

//pass the same string as you pass to the @supports rule
if(CSS.supports("(background-color: red) and (color:white"))
{
 document.body.style.color = "white";
 document.body.style.backgroundColor = "red";
}

最后再分享一个判断浏览器是否支持某些HTML5属性的函数,比如input属性是否支持palaceholder.

function elementSupportsAttribute(element, attribute) {
 var test = document.createElement(element);
 if (attribute in test) {
 return true;
 } else {
 return false;
 }
};

用法:

if (elementSupportsAttribute("textarea", "placeholder") {

} else {
 // fallback
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
js获取location.href的参数实例代码
Aug 02 Javascript
jquery如何把数组变为字符串传到服务端并处理
Apr 30 Javascript
director.js实现前端路由使用实例
Feb 03 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
用js动态添加html元素,以及属性的简单实例
Jul 19 Javascript
Bootstrap CSS组件之导航条(navbar)
Dec 17 Javascript
JS库之Waypoints的用法详解
Sep 13 Javascript
bootstrap paginator分页插件的两种使用方式实例详解
Nov 14 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
Dec 11 Javascript
BootStrap table实现表格行拖拽效果
Dec 01 Javascript
nestjs中异常过滤器Exceptionfilter的具体使用
Feb 07 Javascript
JS实现的几个常用算法
Nov 12 #Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 #Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 #Javascript
Angular学习笔记之angular的$filter服务浅析
Nov 12 #Javascript
使用JS代码实现点击按钮下载文件
Nov 12 #Javascript
JavaScript中浅讲ajax图文详解
Nov 11 #Javascript
javascript 实现动态侧边栏实例详解
Nov 11 #Javascript
You might like
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
php实现的递归提成方案实例
2015/11/14 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
客户端验证用户名和密码的方法详解
2016/06/16 Javascript
几种响应式文字详解
2017/05/19 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
在Python中使用元类的教程
2015/04/28 Python
python 的列表遍历删除实现代码
2020/04/12 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python切图九宫格的实现方法
2019/10/10 Python
详解pycharm自动import所需的库的操作方法
2020/11/30 Python
python中的插入排序的简单用法
2021/01/19 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
香港交友网站:be2香港
2018/07/22 全球购物
加拿大的标志性百货公司:Hudson’s Bay(哈得逊湾)
2019/09/03 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
机电专业大学生求职信
2013/10/04 职场文书
如何写毕业求职自荐信
2013/11/06 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014年财务科工作总结
2014/11/11 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
保安辞职信范文
2015/02/28 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python