【问题标题】:CSS transparent background image using "data:"使用“数据:”的 CSS 透明背景图像
【发布时间】:2011-08-01 01:50:27
【问题描述】:

我在一些网站上看到您可以使用“数据”关键字在 CSS 中包含图像:

.stuff {
  background: transparent url(data:image/gif;base64,SOMEWEIRDCODEHERE) repeat center top;
}

奇怪的代码看起来像一个 base64 编码的字符串,如:

R0lGODlhMwAxAIAAAAAAAP/// yH5BAAAAAAALAAAAAAzADEAAAK8jI+pBr0PowytzotTtbm/DTqQ6C3hGX ElcraA9jIr66ozVpM3nseUvYP1UEHF0FUUHkNJxhLZfEJNvol06tzwrgd LbXsFZYmSMPnHLB+zNJFbq15+SOf50+6rG7lKOjwV1ibGdhHYRVYVJ9Wn k2HWtLdIWMSH9lfyODZoZTb4xdnpxQSEF9oyOWIqp6gaI9pI1Qo7BijbF ZkoaAtEeiiLeKn72xM7vMZofJy8zJys2UxsCT3kO229LH1tXAAAOw==

看起来很酷:D

我想知道如何包含这样的透明 1x1 像素 GIF?有谁知道这种图像的数据代码?

对小且非常常见的图像执行此操作是否是个好主意?所有浏览器都支持吗?

【问题讨论】:

标签: image base64 background-image css


【解决方案1】:

那叫The data URI scheme

使用 Data URI Kitchen 将几乎所有内容转换为数据 uri。关联: http://software.hixie.ch/utilities/cgi/data/data

【讨论】:

  • @Alex:是的,那是因为图像是透明的,不是吗?无论哪种方式,一旦转换,请复制地址栏中的 url。应该以data开头。
  • @Alex:如果您想使用 Base64,请确保在我上面链接的页面上 选中 Base64(如果未选中,它通常比通常提供的更短);)
  • 谢谢。它仍然很大,但我删除了 Photoshop 添加的元数据,现在它很小。但我只能在 FF 和 chrome 中禁用此图像下的选择。 Opera 仍然可以选择 :x
【解决方案2】:
data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

这样做没有错,您节省了 HTTP 往返行程。唯一的缺点是它在旧版本的 IE 中不起作用(我相信 IE8 开始支持它)

【讨论】:

    【解决方案3】:

    这是一个像素的透明 GIF

    background-image: url( data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== );
    

    【讨论】:

      【解决方案4】:

      根据您需要支持的浏览器,您最好使用rgba()。我知道这个问题有点老了。

      body {
        background-color: rgba( 0, 0, 0, .5 ); 
      }
      

      【讨论】:

        【解决方案5】:

        数据 URI 的最新浏览器支持详细信息:

        http://caniuse.com/#feat=datauri

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-15
          • 2011-10-16
          • 2017-08-11
          • 1970-01-01
          • 2016-12-08
          • 2012-09-21
          • 2015-11-12
          • 2010-11-21
          相关资源
          最近更新 更多