欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用JavaScript判斷CSS瀏覽器類型前綴的兩種方法

 更新時間:2015年10月08日 09:10:09   作者:snandy  
不管瀏覽器更新的多快,號稱多么支持標(biāo)準(zhǔn)。廠商不同,他們之間還是有很多差異。我們需要區(qū)分出這些差異,針對不同的瀏覽器做不同的處理。

不管我們對瀏覽器類型前綴有多么的討厭,我們都不得不每天面對它,否者有些東西不能正常工作。這些前綴的用法有兩種:在CSS里(例如“-moz-”)和在JS里。有一個神奇的 X-Tag 項(xiàng)目里有一段很聰明的JavaScript腳本,可以用來判斷當(dāng)前使用的是什么前綴——讓我來展示它是如何工作的!

比如 CSS 前綴,IE 的是 "-ms-",舊版 Opera 的是 "-o-",F(xiàn)irefox 的是 "-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 '';
}();

通過創(chuàng)建一個div,給其分別添加 -webkit-、-moz-、-o-、-ms- 的前綴 css 樣式,然后獲取 style,通過 style.xxxTransition 判斷是哪種前綴。

方法2: getComputedStyle 獲取 documentElement 所有樣式再解析

先通過 window.getComputedStyle 獲取 styles,將 styles 轉(zhuǎn)成數(shù)組

var styles = window.getComputedStyle(document.documentElement, '');
var arr = [].slice.call(styles);
console.log(arr);

Firefox arr 如下

Chrome arr 如下

能看到取到了具有各自瀏覽器自身實(shí)現(xiàn)的 CSS 前綴名稱。

把所有屬性連接成一個字符串,然后用正則表達(dá)式匹配就能找出前綴了

// 取瀏覽器的 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 ,都采用匿名函數(shù)一次性執(zhí)行后返回結(jié)果,不需要每次判斷都調(diào)用一下函數(shù)。

以上內(nèi)容就是小編通過兩種方法給大家介紹的用JavaScript判斷CSS瀏覽器類型前綴,希望大家喜歡。

相關(guān)文章

最新評論