autoprefixer giúp code tương thích trình duyệt

Rate this post

autoprefixer là công cụ giúp tự động tạo ra các prefix tương thích trình duyệt trong CSS của bạn, được sử dụng trong Node và gulp flow.

autoprefixer là gì?

Hãy lật ngược vấn đề. Nếu không dùng autoprefixer , mỗi dòng code của bạn sẽ cần viết tay thêm (trừ trường hợp xài các IDE như phpStorm có sẵn phần tạo này) khá nhiều các dòng code với prefix như -webkit, -moz,… cho mỗi trình duyệt.

Các trình duyệt phổ biến nhất

Với autoprefixer, cuộc đời bạn sẽ nở hoa. Bạn không cần nghĩ tới việc tạo ra các prefix để tránh bị bug trên các trình duyệt nữa. Mọi thứ sau khi được viết gọn gàng trong SASS/SCSS, LESS hoặc postCSS, sẽ được tự động thêm prefix trước khi output ra code CSS cuối cùng. Thật tuyệt phải không?

Hãy tưởng tượng, bạn chỉ cần gõ:

.box { display: flex; }

Và kết quả cuối cùng sau khi sử dụng autoprefixer sẽ cho bạn kết quả:

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

Ngược lại, nếu có 1 prefix nào đó cũ và không cần trong code source của bạn vì các trình duyệt đều đã hỗ trợ, autoprefixer cũng sẽ gỡ bỏ nó.

Bạn có thể thử kiểm tra package này bằng cách nhập thử code CSS ở đây nữa nhé.

Package tuyệt vời này còn có sẵn trên codepen.io nữa nhé để khi bạn làm nháp (không cần localhost) thì vẫn hỗ trợ các trình duyệt.

Cài đặt autoprefixer

Làm việc với gulp: Trong project đã cài Nodenpm install, bạn chạy dòng lệnh:

npm install --save-dev gulp-autoprefixer

Trong file gulpfile.js, bạn sẽ thiết lập như sau nhé:

var autoprefixer = require('gulp-autoprefixer');
gulp.task('style', function() {
  .src('src/scss/main.scss')
  .pipe(sass().on('error', sass.logError))
  .pipe(autoprefixer({
    browsers: [
      'last 3 versions',
      'iOS >= 8',
      'Safari >= 8',
      'ie 11',
    ]
  }))
  .pipe(gulp.dest('dist/css'))
})

Tuỳ chọn: Với option như ở trên, bạn sẽ thấy nó hỗ trợ IE11+, hệ điều hành iOS 8.4 trở lên. Để thiết lập các tuỳ chọn này, bạn cần đọc browserlist nhé.

Ngoài package dành cho gulp, nếu bạn muốn chạy với các thư viện khác thì có thể tham khảo trên Github.

Những mẹo hay sử dụng với autoprefixer

Tắt autoprefixer cho một số thành phần nhất định

Chẳng hạn, nếu bạn gặp 1 project mà có các thành phần sử dụng từ thư viện khác đã có sẵn autoprefixer và không muốn sử dụng ở các module có liên quan, ta sẽ làm như sau:

.hero {
  transition: 1s; /* it will be prefixed by default */
}
.pricing-table {
 /* autoprefixer: off */
  transition: 1s; /* it will not be prefixed */
}

Hỗ trợ autoprefixer trên các trình duyệt

Nếu bạn không sử dụng gulp package cài đặt ở trên nhưng vẫn muốn tính năng auto prefix này xuất hiện trong trình sửa code, bạn có thể tham khảo các plugin hỗ trợ dưới đây:

Kết luận

Nếu bạn vẫn phải tìm cách để code CSS hoạt động trên các trình duyệt như Firefox hay Safari, đã tới lúc thay đổi! Hãy để autoprefixer giúp bạn tối ưu hoá và giảm thời gian code thừa, code lặp nhé!

Viết một bình luận


Chuyên gia về Web
Bạn muốn làm việc với dịch vụ website do chúng tôi triển khai?
Gọi tư vấn 0982.90.4343
Chuyên gia về Web
Bài viết liên quan

07/04/2024

PHP: Format date dd/mm/yyyy và so sánh với Date hiện tại
Một vấn đề hay gặp trong quá trình xử lý PHP datetime là tình huống format date từ định dạng...

02/01/2024

Fix lỗi npm không thể cài các package devDependencies
Khi cài đặt dự án,  có lúc bạn sẽ cài mãi cũng không đủ các package npm, đặc biệt là...
Gọi file PHP trong WordPress

19/09/2023

Cài đặt và sử dụng WP-CLI trên môi trường Linux
Trên một số môi trường Hosting có thể cung cấp SSH hoặc Terminal access, song không có sẵn WP-CLI để...
Import database MySQL lớn trên môi trường Docker

06/08/2023

Import database MySQL lớn trên môi trường Docker
Mình sử dụng EasyPanel để quản lý các Docker và build môi trường app. Nay gặp tình huống phải import...