CSS Sprites là gì?
CSS sprites là kỹ thuật giảm số lượng HTTP requests cho tài nguyên hình ảnh. Nhiều ảnh nhỏ — như icons, buttons, logos — được gộp thành một ảnh lớn gọi là sprite sheet. Sử dụng CSS background-position, mỗi ảnh riêng lẻ được hiển thị bằng cách dịch chuyển vùng nhìn đến tọa độ chính xác.
Kỹ thuật này đặc biệt hiệu quả khi trang web sử dụng nhiều ảnh nhỏ. Các trang web lớn như Yahoo!, Google, và Amazon đã sử dụng CSS sprites để tối ưu tốc độ tải trang.
Cách sử dụng công cụ này
-
Upload ảnh — Kéo thả nhiều file ảnh vào vùng upload, hoặc nhấn "Chọn tệp" để chọn. Định dạng hỗ trợ: PNG, JPG, GIF, WebP, SVG.
-
Chọn bố cục — Chọn từ 4 thuật toán sắp xếp:
- Nén (Packed): Bin-packing cho sprite nhỏ nhất (khuyến nghị cho ảnh nhiều kích thước)
- Ngang (Horizontal): Sắp xếp 1 hàng
- Dọc (Vertical): Sắp xếp 1 cột
- Lưới (Grid): Ô lưới đồng đều (tốt nhất cho icons cùng kích thước)
-
Điều chỉnh cài đặt — Thiết lập padding giữa các ảnh, chọn định dạng xuất (PNG hoặc WebP), cấu hình tiền tố/hậu tố CSS class, và bật tạo retina @2x/@3x.
-
Xem trước và tải — Panel bên phải hiển thị bản xem trước kèm mã CSS, SCSS và HTML được tạo. Tải tất cả dưới dạng file ZIP.
Hỗ trợ Retina / HiDPI
Màn hình hiện đại có mật độ điểm ảnh 2x hoặc 3x. Để sprite hiển thị sắc nét trên các màn hình này, hãy bật tùy chọn @2x và @3x. Công cụ sẽ:
- Tạo thêm sprite sheet ở độ phân giải cao hơn
- Xuất CSS
@mediaqueries phát hiện mật độ điểm ảnh thiết bị - Sử dụng
background-sizeđể thu nhỏ sprite độ phân giải cao về kích thước hiển thị chính xác
Lưu ý tương thích trình duyệt
- Opera: Các phiên bản đến 9.0 có giới hạn 2042px cho giá trị
background-position. Với sprite rất lớn, hãy cân nhắc dùng bố cục Nén hoặc Lưới để giảm kích thước. - Safari: Ảnh nền lặp lại có thể gây vấn đề. Đảm bảo đủ padding giữa các ảnh.
Lợi ích hiệu suất
Mỗi HTTP request đều có overhead — tra cứu DNS, kết nối, bắt tay TLS. Bằng cách gộp 20 file icon thành một sprite duy nhất, bạn loại bỏ 19 requests. Điều này đặc biệt quan trọng trên mạng di động nơi độ trễ cao.