gulp經常使用插件之autoprefixer使用

更多gulp經常使用插件使用請訪問:gulp經常使用插件彙總css


autoprefixer這是一款自動管理瀏覽器前綴的插件,它能夠解析CSS文件而且添加瀏覽器前綴到CSS內容裏。html

更多使用文檔請點擊訪問autoprefixer工具官網git

安裝

一鍵安裝很少解釋github

npm install --save-dev autoprefixerweb

使用

autoprefixer(options)就是調用啦,options是個object。npm

autoprefixer(options)json

如何在gulpfile.js文件裏使用呢?其實也很簡單,請看:gulp

const gulp = require('gulp');
const autoprefixer = require('autoprefixer');

gulp.task('default', () =>
    gulp.src('./before/css.css')
        .pipe(autoprefixer({
            overrideBrowserslist:['> 1%', 'last 2 versions', 'Firefox ESR'], // 重要配置 詳見下面
            cascade: false //  是否美化屬性值
        }))
        .pipe(gulp.dest('./before/dist'))
);

其實這樣就算使用autoprefixer了,是否是很簡單。數組

控制註釋瀏覽器

若是您在CSS的某些部分不須要使用Autoprefixer,則能夠使用控件註釋禁用Autoprefixer。

.a {
  transition: 1s; /* will be prefixed */
}

.b {
  /* autoprefixer: off */
  transition: 1s; /* will not be prefixed */
}

.c {
  /* autoprefixer: ignore next */
  transition: 1s; /* will not be prefixed */
  mask: url(image.png); /* will be prefixed */
}

控件註釋分爲三種:

  • /* autoprefixer: (on|off) */ :啓用/禁用,那麼整個塊的全部Autoprefixer轉換以前和以後的評論。
  • /* autoprefixer: ignore next */ :僅對下一個屬性或下一個規則選擇器或規則參數(而不是規則/規則正文)禁用自動前綴。
  • /* autoprefixer grid: (autoplace|no-autoplace|off) */ :控制Autoprefixer如何處理整個塊的網格轉換:
    • autoplace:啓用具備自動放置支持的網格轉換。
    • no-autoplace:在禁用自動放置支持的狀況下啓用網格轉換(別名爲不同意使用的值on)。
    • off:禁用全部網格轉換。

您還能夠遞歸使用註釋:

/* autoprefixer: off */
@supports (transition: all) {
  /* autoprefixer: on */
  a {
    /* autoprefixer: off */
  }
}

請注意,禁用整個塊的註釋不該在同一塊中出現兩次:

/* How not to use block level control comments */

.do-not-do-this {
  /* autoprefixer: off */
  transition: 1s;
  /* autoprefixer: on */
  transform: rotate(20deg);
}

Options詳解

可用的選項有:

  • env (字符串):Browserslist的環境。

  • cascade(布爾值):若是CSS未壓縮,則Autoprefixer應該使用Visual Cascade。默認:true

  • add(布爾值):Autoprefixer應該添加前綴。默認值爲true。

  • remove(布爾值):應該使用Autoprefixer [刪除過期的]前綴。默認值爲true。

  • supports(布爾值):Autoprefixer應該爲@supports 參數添加前綴。默認值爲true。

  • flexbox(布爾值|字符串):Autoprefixer應該爲flexbox屬性添加前綴。隨着"no-2009"價值Autoprefixer只會最終和IE 10個版本規格的加上前綴。默認值爲true。

  • grid(false | "autoplace"| "no-autoplace"):Autoprefixer是否應爲Grid Layout屬性添加IE 10-11前綴?
    • false (默認):阻止自動前綴生成器輸出CSS Grid轉換。
      -"autoplace":啓用Autoprefixer網格轉換幷包括自動放置支持。您也能夠/* autoprefixer grid: autoplace */在CSS中使用 。
    • "no-autoplace":啓用Autoprefixer網格轉換,但不支持自動放置。您也能夠/* autoprefixer grid: no-autoplace */在CSS中使用 。(折舊true值的別名)
  • stats(對象):自定義使用統計對> 10% in my stats 瀏覽器的查詢。

  • overrideBrowserslist(數組):目標瀏覽器的查詢列表。最佳實踐是使用.browserslistrc配置或browserslist鍵入命令package.json來與Babel,ESLint和Stylelint共享目標瀏覽器。有關 可用的查詢和默認值,請參見 Browserslist文檔

  • ignoreUnknownVersions(布爾值):在Browserslist配置中的未知瀏覽器版本上不引起錯誤。默認值爲false。

插件對象具備info()用於調試目的的方法。

除錯

npx autoprefixer --info 在您的項目目錄中運行,以檢查選擇了哪些瀏覽器以及哪些屬性將帶有前綴:

$ npx autoprefixer --info
Browsers:
  Edge: 16

These browsers account for 0.26% of all users globally

At-Rules:
  @viewport: ms

Selectors:
  ::placeholder: ms

Properties:
  appearance: webkit
  flow-from: ms
  flow-into: ms
  hyphens: ms
  overscroll-behavior: ms
  region-fragment: ms
  scroll-snap-coordinate: ms
  scroll-snap-destination: ms
  scroll-snap-points-x: ms
  scroll-snap-points-y: ms
  scroll-snap-type: ms
  text-size-adjust: ms
  text-spacing: ms
  user-select: ms

JS API也可用:

console.log(autoprefixer().info())

相關文章
相關標籤/搜索