用JavaScript判断CSS浏览器类型前缀的两种方法

不管我们对浏览器类型前缀有多么的讨厌,我们都不得不每天面对它,否者有些东西不能正常工作。这些前缀的用法有两种:在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浏览器类型前缀,希望大家喜欢。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
废话不多说了,直接跟大家分享五种方法,通过代码讲解php获取超链接文本内容的正则表达式。 //方法一 preg_match_all("/(a|a)[s]{0,1}[w=":()]*[ ]*(check user)[ ]*/(a|a)/i",$string,$matches); //方法二 preg_match_all("/a[dd]*check user/a/i",$string,$matches);print_r($matches[0]); //方法三 preg_match_all("/a[^]*[^]
平常会使用ajax来请求数据,加载一个库(框架),或许仅仅maybe就使用了它的ajax部分。 写个ajax,一来可以经历一下处理问题的过程,提升技术能力,二来工作中有时真的用不着这么大的一个库(框架),用自己写的,何乐不为呢。 先来看看流行的jQuery是怎样调用ajax的 $.ajax({ url: 'test.php', //发送请求的URL字符串 type: 'GET', //发送方式 dataType: 'json', //预期服务器返回的数据类型 xml, html, text, json,
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9

JQuery中$.ajax()方法参数详解 - 2015-10-09 14:10:39

全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML);是指一种创建交互式网页应用的网页开发技术。 jquery中的ajax方法参数总是记不住,这里记录一下。 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout: 要求为Number类
本文实例讲述了JS实现的文字与图片定时切换效果代码。分享给大家供大家参考。具体如下: 这是近来门户们都喜欢用的特效,左侧是一个大图片,右侧是对应文字,鼠标移动时,对应行的文字会变化,图片也相应的切换,如果没有鼠标动作时,它会自己播放,播放时间可调整,个人感觉挺不错的导航效果。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-txt-pic-time-cha-tab-codes/ 具体代码如下: headmeta http-equiv="Content
本文实例讲述了JS实现三个层重叠点击互相切换的方法。分享给大家供大家参考。具体如下: 该效果实现三个或多个重叠层,按一定规则重叠在一起,当你用鼠标点击任意层的时候,该层被显示在最上部,多个层交替切换,代码简单,同时学习CSS也是不错的参考范例,本例的功能需要JavaScript代码配合。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-3ccd-tab-click-cha-style-codes/ 具体代码如下: htmlheadmeta http-
本文实例讲述了JS实现淡蓝色简洁竖向Tab点击切换效果。分享给大家供大家参考。具体如下: 这里介绍一款淡蓝色竖向简洁Tab,选项卡,是很多人都喜欢的一种风格。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-blue-v-tab-cha-style-menu-codes/ 具体代码如下: htmlheadmeta http-equiv="Content-Type" content="text/html;charset=gb2312" /title简洁
本文实例讲述了JS+CSS相对定位实现的下拉菜单。分享给大家供大家参考。具体如下: 这里使用的是相对定位,不过效果还可以,用时候再修整一下,这个只是实现了大概功能,还有许多细节没有修饰。 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-ab-fix-menu-codes/ 具体代码如下: htmlheadtitle非定位CSS+Js下拉菜单/titlestyle#menu { position: absolute; font-family:
方法一: // 对Date的扩展,将 Date 转化为指定格式的String// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") == 2006-07-02 08:09:04.423 // (new Date()).Format("yyyy-M-d h:m:s
前言 这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程、大事件等场景。该插件基于jQuery,可以滑动切换、水平和垂直滚动、支持键盘方向键。经过扩展后可以支持鼠标滚轮事件。 HTML 我们在body中建立一个div#timeline作为展示区,#dates为时间轴,示例中我们用年份作为主轴,#issues作为内容展示区,即展示对应主轴点年份的内容,注意id对应上。 div id="timeline" ul id="dates" lia href=#> jQuery Timelin