Autoprefixer

Autoprefixer je – jak z názvu vyplývá – automatizační nástroj, který přidává prohlížečové prefixy do CSS kódu.

Autoprefixer například z následujícího kódu…

.box {
  hyphens: auto;
}

… udělá tento kód:

.box {
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}

Tím pádem budou kódu rozumět všechny prohlížeče, i když vlastnost hyphens neznají a podporují jen prefixované varianty.

Autoprefixer online

Autoprefixer v celé kráse své online verze.

Jak Autoprefixer funguje?

Autoprefixer je balíček, který si můžete do projektu nainstalovat jako plugin pro PostCSS, což je nástroj sloužící k jakémukoliv automatickému zpracovávání CSS kódu.

Používat můžete Autoprefixer mnoha různými způsoby, o těch bude za chvíli řeč. Nejprve ale k nastavení.

Nástroj PostCSS?

Nastavení pomocí Browserslistu

Browserslist je způsob, jak Autoprefixeru a podobným nástrojům (jakým je například Babel pro zpracování JavaScriptu) určit, které prohlížeče v projektu podporujete.

Nejlepším způsobem, jak poskytnout toto nastavení, je soubor .browserslistrc v kořenovém adresáři projektu. Alternativně můžete přidat klíč browserslist do souboru package.json nebo přímo v nastavení Autoprefixeru.

Soubor package.json?

Výchozí nastavení vypadá asi takto:

last 1 version, >1%

Potom tento kód…

.box {
  display: flex;
}

… bude mít totožný zápis i po zásahu Autoprefixeru. Pomocí nastavení last 1 version, >1% jsme řekli, že budeme podporovat jen poslední verzi prohlížečů a takovou verzi, která má ve světě rozšíření více než jedno procento.

Pojďme ale změnit zápis konfigurace takto:

> 1%, IE 11, IE 10

Pak bude výsledek jiný:

.box {
  display: -ms-flexbox;
  display: flex;
}

V konfiguraci Browserslistu je IE 10, takže Autoprefixer přidá zápis pro tento stařičký prohlížeč: display:-ms-flexbox.

Použití Autoprefixeru

Možností využití je celá řada, podívejme se na ně.

Online

Pokud si chcete jen hrát nebo přidat pár prefixů, zajděte na online pískoviště. autoprefixer.github.io

Příkazová řádka

Využijte balíček postcss-cli. vrdl.in/96mcu

npm install postcss-cli autoprefixer
npx postcss *.css --use autoprefixer -d build/

Gulp

Pro kombinování s Gulpem je k dispozici balíček gulp-postcss. vrdl.in/2a70d

gulp.task('autoprefixer', () => {
  const autoprefixer = require('autoprefixer')
  const sourcemaps = require('gulp-sourcemaps')
  const postcss = require('gulp-postcss')

  return gulp.src('./src/*.css')
    .pipe(sourcemaps.init())
    .pipe(postcss([ autoprefixer() ]))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('./dest'))
})

Webpack

postcss-loader je balíček vhodný pro vaši práci ve Webpacku. vrdl.in/lcpb5

webpack.config.js:

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ["style-loader", "css-loader", "postcss-loader"]
      }
    ]
  }
}

postcss.config.js:

module.exports = {
  plugins: [
    require('autoprefixer')
  ]
}

Použití Autoprefixeru s dalšími nástroji a více nápovědy najdete na oficiálním webu. vrdl.in/ptaqs