js判断浏览器是否支持css3属性

js判断浏览器是否支持css3属性

作者: 结一 日期: 2013-12-10 点击: 52
var cssSupports = (function() {
	var div = document.createElement('div'),
		vendors = 'Khtml O Moz Webkit'.split(' '),
		len = vendors.length;
	return function(prop) {
		if ( prop in div.style ) return true;
		if ('-ms-' + 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;
	};
})();

下面简单说下两个实例:

border-radius

判断浏览器是否支持border-radius,支持则给html添加class为border-radius,否则添加class为no-border-radius

if(cssSupports('borderRadius')){
	document.documentElement.className += ' border-radius';
}else{
	document.documentElement.className += ' no-border-radius';
}

flex

因为这个flex是出现在display的值上面的,而我们上面的方法其实只适用于属性,所以直接是不行的,我们可以通过曲线的方法来判断,和 flex相关的还有很多其他的属性如order,align-content,align-item,align-slef等,我们就用最简单的 order来曲线判断是否支持flex吧。(注意因为flex除了标准版本外,还有其他两个版本,这里只挑标准的属性判断,如果你对flex的版本比较迷 糊,可以查阅终极Flexbox属性查询列表

if(cssSupports('order')){
	document.documentElement.className += ' flex';
}else{
	document.documentElement.className += ' no-flex';
}

如果你对上面那段js有点不明白,你可以在控制台运行这段代码,就会看到所有style的属性

(function(){
	var oDiv = document.createElement('div');

	for(var prop in oDiv.style){
		console.log(prop);
	}
})();

转载于:https://www.cnblogs.com/FineDay/articles/3517078.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值