Công cụ này làm gì
Công cụ tạo CSS sprite ghép một bộ biểu tượng hoặc ảnh nhỏ thành một sprite sheet duy nhất và viết CSS để hiển thị từng ảnh. Thêm tệp PNG, SVG, GIF hoặc JPG, chọn cách sắp xếp, rồi tải xuống ảnh sprite PNG cùng một stylesheet có một class cho mỗi ảnh.
Tên class lấy từ tên tệp: Home Icon.png trở thành .icon-home-icon, và tên trùng nhau sẽ được thêm số. Bố cục Xếp gọn dùng thuật toán bin packing để đặt các ảnh có kích thước khác nhau lên sheet nhỏ nhất; Dọc, Ngang và Lưới cho vị trí dễ đoán.
Cách sử dụng
- Nhấn Thêm ảnh… và chọn các biểu tượng của bạn (hoặc bắt đầu từ bộ ảnh ví dụ).
- Chọn Bố cục và Khoảng đệm. Một chút khoảng đệm giúp các biểu tượng cạnh nhau không lem sang nhau khi trình duyệt co giãn chúng.
- Đặt Tiền tố class và Tên tệp sprite dùng trong
background-image. - Chọn @2x nếu ảnh của bạn được vẽ ở kích thước gấp đôi cho màn hình retina.
- Nhấn Tải PNG và Tải CSS (hoặc Sao chép ảnh để dán sprite vào công cụ thiết kế hay khung chat), tải cả hai lên máy chủ, rồi dùng các class:
<span class="icon icon-home"></span>.
Ví dụ
.icon {
display: inline-block;
background-image: url("sprite.png");
background-repeat: no-repeat;
}
.icon-home {
width: 32px;
height: 32px;
background-position: 0 0;
}
Mẹo
- Gom các biểu tượng thường thay đổi cùng nhau vào một sprite; tạo lại sheet sẽ làm thay đổi mọi vị trí.
- Với biểu tượng một màu cần đổi màu bằng CSS, icon font SVG hoặc SVG nội tuyến có thể phù hợp hơn.
Câu hỏi thường gặp
› CSS sprite là gì?
Là một ảnh chứa nhiều ảnh nhỏ. Mỗi biểu tượng được hiển thị bằng cách đặt sprite làm nền cho một phần tử và dịch chuyển nó bằng background-position, nhờ vậy trang chỉ cần một yêu cầu thay vì hàng chục.
› Sprite còn hữu ích khi đã có HTTP/2 không?
Ít hơn trước, nhưng vẫn có ích khi có nhiều biểu tượng rất nhỏ, với mẫu email, game và dự án cũ, đồng thời tránh hiện tượng biểu tượng nhấp nháy khi tải lần lượt từng cái.
› Tùy chọn @2x làm gì?
Nếu ảnh nguồn được vẽ ở kích thước gấp đôi kích thước hiển thị, CSS sẽ chia đôi mọi chiều rộng, chiều cao và vị trí, đồng thời thêm background-size để biểu tượng vẫn sắc nét trên màn hình mật độ điểm ảnh cao.
› Ảnh của tôi có bị tải lên không?
Không. Sprite được vẽ trong trình duyệt của bạn bằng canvas và CSS được tạo cục bộ.