Multiple Background Images using Sass / Compass

白昼怎懂夜的黑 提交于 2019-12-04 00:37:59

问题


The following generates a base64 inline-image using sass/compass:

background-image:inline-image("paper.jpg", 'image/jpg');

Is there a way to do multiple background images, or do I have to precompress them myself to do it?

Thanks.


回答1:


The inline-image function just outputs the url() string, so you can use multiple by doing this:

background: inline-image("front-image.jpg", 'image/jpg') no-repeat, inline-image("back-image.jpg", 'image/jpg') repeat-x

And you'll get the following css:

background: url('data:"image/jpg";base64,FRONTIMAGEDATAHERE') no-repeat, url('data:"image/jpg";base64,BACKIMAGEDATAHERE') repeat-x;

I added "no-repeat" and "repeat-x" otherwise the front-image will repeat and cover the back-image.




回答2:


I'm use sencha touch 2 and found next sass extension for this:

theme_images.rb:

module SenchaTouch
  module SassExtensions
    module Functions
      module ThemeImages
        def theme_image(theme, path, mime_type = nil)
          path = path.value
          images_path = File.join(File.dirname(__FILE__), "..", "images", theme.value)
          real_path = File.join(images_path, path)
          inline_image_string(data(real_path), compute_mime_type(path, mime_type))
        end
      end
    end
  end
end

module Sass::Script::Functions
  include SenchaTouch::SassExtensions::Functions::ThemeImages
end

compass_init.rb:

# This file registers the sencha-touch framework with compass
# It's a magic name that compass knows how to find.
dir = File.dirname(__FILE__)
require File.join(dir, 'lib', 'theme_images.rb')

Compass::Frameworks.register 'sencha-touch', dir

See usages:

background: theme_image($theme-name, "clear_icon.png") no-repeat;
-webkit-mask: theme_image($theme-name, "select_mask.png");
-webkit-mask-image: theme_image($theme-name, "pictos/arrow_down.png");


来源:https://stackoverflow.com/questions/5846600/multiple-background-images-using-sass-compass

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!