用JavaScript判断CSS浏览器类型前缀的两种方法
作者:bea
不管我们对浏览器类型前缀有多么的讨厌,我们都不得不每天面对它,否者有些东西不能正常工作。这些前缀的用法有两种:在CSS里(例如“-moz-”)和在JS里。有一个神奇的 X-Tag 项目里有一段很聪明的JavaScript脚本,可以用来判断当前使用的是什么前缀——让我来展示它是如何工作的! 比如 CSS 前缀,IE 的是 "-ms-",旧版 Opera 的是 "-o-",Firefox 的是 "-moz-",Safari/Chrome 是 "-webkit-"。JavaScri
不管我们对浏览器类型前缀有多么的讨厌,我们都不得不每天面对它,否者有些东西不能正常工作。这些前缀的用法有两种:在CSS里(例如“-moz-”)和在JS里。有一个神奇的 X-Tag 项目里有一段很聪明的JavaScript脚本,可以用来判断当前使用的是什么前缀——让我来展示它是如何工作的!
比如 CSS 前缀,IE 的是 "-ms-",旧版 Opera 的是 "-o-",Firefox 的是 "-moz-",Safari/Chrome 是 "-webkit-"。JavaScript 有多种方式判断它们。
方法1: 特性判断
// 取浏览器的 CSS 前缀
var prefix = function() {
var div = document.createElement('div');
var cssText = '-webkit-transition:all .1s; -moz-transition:all .1s; -o-transition:all .1s; -ms-transition:all .1s; transition:all .1s;';
div.style.cssText = cssText;
var style = div.style;
if (style.webkitTransition) {
return '-webkit-';
}
if (style.MozTransition) {
return '-moz-';
}
if (style.oTransition) {
return '-o-';
}
if (style.msTransition) {
return '-ms-';
}
return '';
}();
通过创建一个div,给其分别添加 -webkit-、-moz-、-o-、-ms- 的前缀 css 样式,然后获取 style,通过 style.xxxTransition 判断是哪种前缀。
方法2: getComputedStyle 获取 documentElement 所有样式再解析
先通过 window.getComputedStyle 获取 styles,将 styles 转成数组
var styles = window.getComputedStyle(document.documentElement, '');
var arr = [].slice.call(styles);
console.log(arr);
Firefox arr 如下
Chrome arr 如下
能看到取到了具有各自浏览器自身实现的 CSS 前缀名称。
把所有属性连接成一个字符串,然后用正则表达式匹配就能找出前缀了
// 取浏览器的 CSS 前缀
var prefix = function() {
var styles = window.getComputedStyle(document.documentElement, '');
var core = (
Array.prototype.slice
.call(styles)
.join('')
.match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
)[1];
return '-' + core + '-';
}();
我们看到 方法2 比 方法1 代码量少了许多。无论是方法1 和 方法2 ,都采用匿名函数一次性执行后返回结果,不需要每次判断都调用一下函数。
以上内容就是小编通过两种方法给大家介绍的用JavaScript判断CSS浏览器类型前缀,希望大家喜欢。
有用 | 无用
比如 CSS 前缀,IE 的是 "-ms-",旧版 Opera 的是 "-o-",Firefox 的是 "-moz-",Safari/Chrome 是 "-webkit-"。JavaScript 有多种方式判断它们。
方法1: 特性判断
// 取浏览器的 CSS 前缀
var prefix = function() {
var div = document.createElement('div');
var cssText = '-webkit-transition:all .1s; -moz-transition:all .1s; -o-transition:all .1s; -ms-transition:all .1s; transition:all .1s;';
div.style.cssText = cssText;
var style = div.style;
if (style.webkitTransition) {
return '-webkit-';
}
if (style.MozTransition) {
return '-moz-';
}
if (style.oTransition) {
return '-o-';
}
if (style.msTransition) {
return '-ms-';
}
return '';
}();
通过创建一个div,给其分别添加 -webkit-、-moz-、-o-、-ms- 的前缀 css 样式,然后获取 style,通过 style.xxxTransition 判断是哪种前缀。
方法2: getComputedStyle 获取 documentElement 所有样式再解析
先通过 window.getComputedStyle 获取 styles,将 styles 转成数组
var styles = window.getComputedStyle(document.documentElement, '');
var arr = [].slice.call(styles);
console.log(arr);
Firefox arr 如下
Chrome arr 如下
能看到取到了具有各自浏览器自身实现的 CSS 前缀名称。
把所有属性连接成一个字符串,然后用正则表达式匹配就能找出前缀了
// 取浏览器的 CSS 前缀
var prefix = function() {
var styles = window.getComputedStyle(document.documentElement, '');
var core = (
Array.prototype.slice
.call(styles)
.join('')
.match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
)[1];
return '-' + core + '-';
}();
我们看到 方法2 比 方法1 代码量少了许多。无论是方法1 和 方法2 ,都采用匿名函数一次性执行后返回结果,不需要每次判断都调用一下函数。
以上内容就是小编通过两种方法给大家介绍的用JavaScript判断CSS浏览器类型前缀,希望大家喜欢。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jQuery+PHP实现可编辑表格字段内容并实时保存
- jQuery往返城市和日期查询实例讲解
- JS实现黑色风格的网页TAB选项卡效果代码
- jQuery实现连续动画效果实例分析
- jQuery控制DIV层实现由大到小,由远及近动画变化效果
- jQuery拖动布局其结果保存到数据库
- JS实现可展开折叠层的鼠标拖曳效果
- JavaScript实现横向滑出的多级菜单效果
- JS实现样式清新的横排下拉菜单效果
- jQuery表格行上移下移和置顶的实现方法
- Jquery中使用show()与hide()方法动画显示和隐藏图片
- jQuery仅用3行代码实现的显示与隐藏功能完整实例
- js小数运算出现多位小数如何解决
- jQuery实现仿微软首页感应鼠标变化滑动窗口效果
- js实现超酷的照片墙展示效果图附源码下载
- JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
- Javascript控制div属性动态变化实例分析
- JS+CSS实现的蓝色table选项卡效果
- 分享五个有用的jquery小技巧