使用 Sass / Compass 的多个背景图像

Posted

技术标签:

【中文标题】使用 Sass / Compass 的多个背景图像【英文标题】:Multiple Background Images using Sass / Compass 【发布时间】:2011-08-16 08:07:48 【问题描述】:

以下使用 sass/compass 生成 base64 内联图像:

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

有没有办法制作多个背景图片,还是我必须自己预压缩它们才能做到?

谢谢。

【问题讨论】:

【参考方案1】:

inline-image 函数只输出 url() 字符串,因此您可以通过这样做来使用多个:

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

你会得到以下css:

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

我添加了“no-repeat”和“repeat-x”,否则前面的图像会重复并覆盖后面的图像。

【讨论】:

请注意,如果您希望在使用background 简写时应用背景颜色,it is only permitted in the final layer:Note that a color is permitted in <final-bg-layer>, but not in <bg-layer>【参考方案2】:

我正在使用 sencha touch 2 并为此找到了下一个 sass 扩展:

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

查看用法:

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");

【讨论】:

以上是关于使用 Sass / Compass 的多个背景图像的主要内容,如果未能解决你的问题,请参考以下文章

邂逅Sass和Compass之Compass篇

sass,compass让开发效率飞起

由于版本冲突,无法安装 sass + compass + susy

PHPStrom使用SASS,SCSS和Compass

Sass / Compass中的自动变暗颜色

带有 Compass 和 Sass 的 Shopify 主题