css - 使用 gulp 可以从 svg data-uri 生成后备背景图像吗?

标签 css svg less gulp

我有一个 less icon mixin,它读取一小组 svg 图标并将结果输出为具有背景属性的 css 类。

就我目前的元素而言,这是使用 SVG 的最有效方式。 less mixin 还添加了后备背景图像 url,引用 png。

我为元素选择的构建任务运行器是 gulp,当任务运行时,生成的示例 css 输出遵循以下模式:

.rss {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: auto;
  background-color: #ee802f;
}
.no-svg .rss {
  background-image: url('/wordpress/wp-content/themes/theme/images/rss.png');
}
.svg .rss {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2250%22%20height%3D%2250%22%20viewBox%3D%220%200%2050%2050%22%3E%3Cpath%20fill%3D%22%23ffffff%22%20d%3D%22M13.296%2040.908c-2.34%200-4.243-1.89-4.243-4.23%200-2.33%201.902-4.24%204.243-4.24%202.354%200%204.25%201.91%204.25%204.24%200%202.342-1.897%204.23-4.25%204.23zm10.67.033c0-3.992-1.554-7.753-4.37-10.564C16.783%2027.556%2013.037%2026%209.057%2026V19.89c11.603%200%2021.05%209.443%2021.05%2021.055h-6.14v-.002zm11.104-.77c0-14.208-11.555-25.775-25.75-25.775V8.28c17.577%200%2031.883%2014.313%2031.883%2031.89H35.07z%22%2F%3E%3C%2Fsvg%3E");
}

此时 png 文件不存在。

我想要实现的是 gulp 中的一个解决方案,它将查找每个数据 url 的 svg,然后生成 png 后备图像文件。 这样的事情甚至可能吗?

谢谢!

最佳答案

如果您使用的是 Sprite gulp-svgfallback 就可以了,它会为 IE8 及更低版本生成一个 SVG Sprite 和第二个 PNG Sprite 。

关于css - 使用 gulp 可以从 svg data-uri 生成后备背景图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31712193/

相关文章:

javascript - gulp 进程以代码 1 终止

css - less.css : reference other style definitions?

css - Office 365 加载项在 Firefox 53 中被严重水平剪切

php - 处理外部 CSS 样式表和注入(inject)内联 CSS 元素的最佳方式是什么?

javascript - 在下拉菜单上滚动时如何防止正文滚动。?

javascript - 如何在一个 html 页面上应用两个 svg?

ios - 如何使SVG在iOS上运行?

javascript - 逆向工程/定制 Meteor LocalMarket 示例应用程序

html - CSS 中 SVG 的垂直对齐

html - 使用 less 覆盖 Bootstrap 时的特异性