Autoprefixer is a tool to parse CSS and add vendor prefixes to CSS rules using values from the Can I Use. This library provides PHP integration with Node.js application.
Write your CSS rules without vendor prefixes (in fact, forget about them entirely):
$autoprefixer = new Autoprefixer();
$css = 'a { transition: transform 1s }';
$prefixed = $autoprefixer->compile($css);
Autoprefixer uses the data on current browser popularity and properties support to apply prefixes for you:
a {
-webkit-transition: -webkit-transform 1s;
transition: -ms-transform 1s;
transition: transform 1s
}
You can ask me any questions by e-mail: [email protected]
- First you need install Node.js in your server.
-
Create a composer.json file in your project root:
{ "require": { "vladkens/autoprefixer": "dev-master" } }
-
Write in the project root:
Linux:
php composer.phar install
Windows:
composer.bat install
-
In
index.php
write:require_once 'vendor/autoload.php';
$autoprefixer = new Autoprefixer();
$css_one = 'a { color: black; }';
$css_two = 'a { color: white; }';
// If need compile one css. Function return compied CSS.
$prefixed = $autoprefixer->compile($css_one);
echo $prefixed;
// If need compile many css in one time. Function return array of compiled CSS.
$prefixed = $autoprefixer->([$css_one, $css_two]);
echo $prefixed[0] . "\n" . $prefixed[1];
// If occurred error in compile time Autoprefixer throw exception named `AutoprefixerException`.
// You need process it.
try {
$autoprefixer->compile($css_one);
} catch (AutoprefixerException $error) {
echo $error->getMessage();
} catch (Exception $error) {
echo $error->getMessage();
}
// If you want to choose specific browsers
$autoprefixer = new Autoprefixer('last 1 version'); // one rule
// or
$autoprefixer = new Autoprefixer(['ff > 2', '> 2%', 'ie 8']); // many rules
// or
$autoprefixer->setBrowsers('last 1 version');
// or change browsers on a one iteration
$autoprefixer->compile($css_one, 'last 1 version');
// Also, you can get latest version Autoprefixer using
$autoprefixer->update();
On my Intel i5-3210M 2.5GHz and HDD 5200 RPM GitHub styles compiled in 390 ms.
See https://github.com/ai/autoprefixer/blob/master/README.md