2011-06-06 15 views
10

Esto se relaciona específicamente con el marco de la brújula para SASS.Múltiples imágenes de fondo (gradiente + sprite)

He creado un sprite y también un degradado mixin. ¿Es posible combinar los dos en el mismo artículo? Si es así, ¿cómo?

@import "compass/css3"; 

@import "icon/*.png"; 
@include all-icon-sprites; 

@mixin light-gradient { 
    @include background-image(linear-gradient(top, $dark 20%, $light 100%)); 
    color: $dark; 
    text-shadow: $light; 
} 

button { 
    @include light-gradient; 
    @include icon-sprite(search); 
} 

Actualización:

Yo he llegado con esta solución, ¿alguien puede mejorar en él?

@import "compass/css3"; 
@import "compass/utilities/sprites"; 

$icon: sprite-map("icon/*.png"); 

$light-gradient: linear-gradient(bottom, $shade-2 20%, $shade-3 100%); 
$icon-search: sprite($icon, search) no-repeat; 

button { 
    @include background($light-gradient, $icon-search); 
} 
+0

¡Gracias por esto! Descubrí que solo funcionaría cuando le diera al fondo() el ícono y luego el degradado (al contrario de lo que tiene), como lo siguiente: @include background ($ icon-search, $ light-gradient); – James

Respuesta

6

Usted puede utilizar la variable $<map>-sprites obtener el mapa de sprites generado por los mixins Sprite, al igual que (basado en el original ejemplo):

@import "compass/css3"; 

@import "icon/*.png"; 
@include all-icon-sprites; 

button { 
    @include background(linear-gradient(top, $dark 20%, $light 100%), 
         sprite($icon-sprites, search) no-repeat); 
} 

No necesariamente todo lo que mucho más elegante (si en absoluto), pero otra ruta si eliges tomarla. :)

Cuestiones relacionadas