跳到内容
🛠️ToolsShed

SVG转CSS转换器

将SVG代码转换为CSS background-image数据URI。支持URL编码和Base64格式。

关于此工具

SVG to CSS Converter 将 SVG 代码转换为数据 URI 格式,可直接在 CSS background-image 属性中使用,无需单独的图像文件或 HTTP 请求。通过将 SVG 数据直接嵌入样式表,你可以减少外部依赖、改善页面加载性能并简化资源管理。该工具支持 URL 编码和 Base64 编码两种格式,每种格式根据你的性能优先级和可读性偏好具有不同的优势。

要将 SVG 转换为 CSS,请将 SVG 代码粘贴到输入区域,选择你偏好的编码方法,然后点击"Convert"。URL 编码格式生成较短的输出,更易于阅读和调试,而 Base64 创建更紧凑的表示,在 gzip 中压缩效果更好。该工具立即显示 CSS 输出和渲染 SVG 的实时预览,帮助你在复制到样式表之前验证转换。

这种方法特别适用于嵌入在网络应用程序中的小图标、徽标和简单图形。通过在 CSS 中保留 SVG 数据,你可以避免缓存破坏问题、减少总网络请求,甚至可以通过 :hover 和 :active 等 CSS 伪类来操纵 SVG 属性。对于复杂的 SVG,考虑将其存储为单独的文件以获得更好的可维护性,但对于很少更改的组件,内联数据 URI 效果很好。

常见问题

代码实现

import base64
from urllib.parse import quote

def svg_to_css_url_encoded(svg: str) -> str:
    encoded = quote(svg, safe="")
    return f'background-image: url("data:image/svg+xml,{encoded}");'

def svg_to_css_base64(svg: str) -> str:
    b64 = base64.b64encode(svg.encode("utf-8")).decode("ascii")
    return f'background-image: url("data:image/svg+xml;base64,{b64}");'

svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="10" fill="#6366f1"/></svg>'

print("URL encoded:")
print(svg_to_css_url_encoded(svg))
print()
print("Base64:")
print(svg_to_css_base64(svg))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.