在样式表中嵌入图像而不是使用img标记

时间:2015-07-31 13:33:06

标签: css

我遇到了这段代码

 .happy-icon
    height 22px
    width 22px
    background base64('../assets/pencil-default.png') no-repeat center

将此图像嵌入样式表而不是标记有什么好处? 使用base64调用有什么好处?

基于我收到的一些反复数据......如果这是为了优化.. 那么图像必须只在我假设的一个地方使用..

所以考虑下面..图像将被转换成数据串两次,并且不一定会增加css的大小......我是对的吗?

.class-1
   base64('../some-image.jpg')

.class-2
   base64('../some-image.jpg')

3 个答案:

答案 0 :(得分:1)

它可以节省HTTP请求,从而优化您的网站速度,因为base64会将图像转换为数据字符串。但是,您编写它的方式不起作用,您需要先将图像转换为base64,然后再使用该代码

https://css-tricks.com/data-uris/

答案 1 :(得分:1)

这在构建过程中得到了内联。这在您无法部署图像或其他静态资产,或者某些小众性能用例的情况下非常有用。

较少的HTTP请求=较少的开销,但如果没有实际的性能测试,我会对此持怀疑态度。

答案 2 :(得分:1)

嵌入技术的不同之处在于减少了您获得的HTTP调用量。因此,在嵌入之前,您需要下载两个文件,并且只有一个文件。

它还有副作用:它会不必要地增加CSS的大小。为什么不必要?

想象一下,您的图像仅显示在每年访问一次的一个页面上,因此普通用户永远不会看到该图像。但CSS文件将包含其内容。如果没有嵌入此图像,只有当您进入特定页面时才会延迟加载一次。

所以这是主要的区别。您将所有内容放在一个模块或单独的模块中,并仅在需要时加载它们。这两种方式都很有用,两者都没用。