-
-
Save brubrant/3166895 to your computer and use it in GitHub Desktop.
// http://compass-style.org/reference/compass/helpers/sprites/ | |
@mixin get-sprite($map, $sprite, $repeat: no-repeat, $height: true, $width: true) { | |
//http://compass-style.org/reference/compass/helpers/sprites/#sprite-file | |
$sprite-image: sprite-file($map, $sprite); | |
// http://compass-style.org/reference/compass/helpers/sprites/#sprite-url | |
$sprite-map: sprite-url($map); | |
// http://compass-style.org/reference/compass/helpers/sprites/#sprite-position | |
$sprite-position: sprite-position($map, $sprite); | |
// Returns background | |
background: $sprite-map $sprite-position $repeat; | |
// http://compass-style.org/reference/compass/helpers/image-dimensions/ | |
// Checks to see if the user wants height returned | |
@if $height == true { | |
// Gets the height of the sprite-image | |
$sprite-height: image-height($sprite-image); | |
// Returns the height | |
height: $sprite-height; } | |
// http://compass-style.org/reference/compass/helpers/image-dimensions/ | |
// Checks to see if the user wants height returned | |
@if $width == true { | |
// Gets the width of the sprite-image | |
$sprite-width: image-width($sprite-image); | |
// Returns the width | |
width: $sprite-width; } | |
} |
It should be noted that this mixin appears to have a bit missing: there is no clause within the function that allows the width & height to be set 'manually', even though both can to be passed to the function to override the default values of 'true'. Here is my amended code with a couple of simple lines added that allow width & height to be set manually:
@mixin get-sprite($map, $sprite, $repeat: no-repeat, $height: true, $width: true) {
$sprite-image: sprite-file($map, $sprite);
$sprite-map: sprite-url($map);
$sprite-position: sprite-position($map, $sprite);
background: $sprite-map $sprite-position $repeat;
height: $height;
@if $height == true {
$sprite-height: image-height($sprite-image);
height: $sprite-height; }
width: $width;
@if $width == true {
$sprite-width: image-width($sprite-image);
width: $sprite-width; }
}
You just made my day! Great mixin!!