Chuyển SVG thành CSS background-image
Công cụ chuyển đổi SVG thành CSS background-image data URI online miễn phí của Tấn Phát Digital. Hỗ trợ 2 phương pháp encoding: URL encoded (nhẹ hơn 20-30%) và Base64 encoded (compatibility cao). Tự động thêm xmlns attribute nếu thiếu. Preview SVG trên nhiều màu nền (trắng, xám, đen) để kiểm tra transparency. Generate CSS class hoàn chỉnh với background-repeat, background-position, background-size. Copy output với một click. Giảm HTTP requests bằng cách inline SVG trong CSS. Hữu ích cho icons, logos, decorative elements. Xử lý 100% trên trình duyệt, không upload file lên server.
Inline SVG trong CSS mang lại nhiều lợi ích cho web performance. Giảm HTTP requests: Thay vì browser phải request file SVG riêng, SVG được embed trực tiếp trong CSS. Với nhiều icons nhỏ, điều này giảm đáng kể số requests. Caching hiệu quả: CSS file được cache, SVG đi kèm cũng được cache. Không cần quản lý nhiều files. Không FOUC: SVG load cùng CSS, không có flash of unstyled content. Critical CSS: Có thể inline CSS với SVG vào HTML cho above-the-fold content. Khi nào dùng: Icons nhỏ, decorative elements, background patterns. Khi nào không dùng: SVG lớn (> 5KB), SVG cần animate bằng JS, SVG cần accessible (cần inline trong HTML với title/desc).
URL Encoded: Encode các ký tự đặc biệt (<, >, #, etc.) thành %XX format. Ưu điểm: Nhẹ hơn Base64 khoảng 20-30%. Human-readable (có thể đọc SVG trong CSS). Dễ debug. Nhược điểm: Một số browsers rất cũ có thể không support. Base64 Encoded: Convert binary thành ASCII string. Ưu điểm: Compatibility cao với tất cả browsers. Ít edge cases. Nhược điểm: Tăng size 33% so với original. Không readable. Recommendation: Dùng URL encoded cho projects hiện đại. Dùng Base64 nếu cần support IE cũ hoặc gặp issues với URL encoded.
Optimize SVG trước: Dùng SVGO hoặc tool SVG Optimizer của chúng tôi để giảm size. Remove comments, metadata, unnecessary attributes. Giữ SVG nhỏ: Chỉ inline SVG < 5KB. SVG lớn hơn nên dùng external file với proper caching. Đảm bảo xmlns: SVG trong data URI cần xmlns='http://www.w3.org/2000/svg'. Tool tự động thêm nếu thiếu. Test trên nhiều backgrounds: SVG với stroke='currentColor' sẽ không hoạt động trong CSS background. Đảm bảo colors được hardcode. Accessibility: SVG trong CSS background không accessible cho screen readers. Dùng cho decorative elements only. Cho meaningful icons, inline SVG trong HTML với proper ARIA.
Một hạn chế của SVG trong CSS background là không thể thay đổi colors dynamically. Workaround: Tạo multiple versions với different colors. Dùng CSS mask-image thay vì background-image (cho single-color icons). Ví dụ với mask-image: .icon { background-color: currentColor; mask-image: url('data:image/svg+xml,...'); mask-repeat: no-repeat; mask-position: center; mask-size: contain; } Với cách này, icon sẽ inherit color từ parent element. Lưu ý: mask-image cần prefix -webkit- cho Safari.
URL encoded được recommend cho hầu hết cases vì nhẹ hơn 20-30% và human-readable. Base64 chỉ cần khi support browsers rất cũ (IE < 9) hoặc gặp edge cases với URL encoded. Cả hai đều được support bởi tất cả browsers hiện đại.
Nguyên nhân phổ biến: Thiếu xmlns attribute - tool tự động thêm nhưng check lại. Quotes không đúng - data URI cần double quotes bên ngoài, single quotes bên trong SVG. SVG syntax error - validate SVG trước. Colors dùng # không được encode - # phải thành %23.
Không trực tiếp. SVG trong background-image là static image. Workarounds: Tạo multiple SVG với different colors. Dùng CSS mask-image thay vì background-image (icon sẽ inherit currentColor). Dùng CSS filters để shift colors (hạn chế).
Rule of thumb: < 5KB nên inline, > 5KB nên external file. Lý do: Inline tăng CSS file size, ảnh hưởng caching. Nhiều SVG nhỏ inline tốt hơn 1 SVG lớn. External SVG có thể lazy load. Luôn optimize SVG trước khi inline.
Dùng background-size: contain hoặc cover. contain: SVG fit trong container, giữ aspect ratio. cover: SVG cover toàn bộ container, có thể bị crop. Kết hợp với background-position: center để center SVG.
Không. SVG trong CSS background-image là static. Animations (SMIL hoặc CSS) sẽ không chạy. Nếu cần animated SVG, phải inline trong HTML hoặc dùng <img> tag (SMIL only, không CSS animation).
SVG có thể có transparent areas hoặc colors tương tự background. Preview trên trắng, xám, đen giúp: Kiểm tra transparency hoạt động đúng. Đảm bảo SVG visible trên cả light và dark themes. Phát hiện missing fills hoặc strokes.
Không. Toàn bộ xử lý diễn ra 100% trên browser bằng JavaScript. SVG code không được gửi đi đâu cả. An toàn để dùng với proprietary designs hoặc client work.
Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.