Si puede utilizar un preprocesador como SCSS:
(actualizado para realmente responder a la pregunta planteada; también ver live example)
// ----------- only things you need to edit { ---------------
$sprite-size: 16px; // standard sprite tile size
$sprite-padding: 0px; // if you have padding between tiles
// ----------- } only things you need to edit ---------------
// basic sprite properties (extension-only class)
%sprite {
width:$sprite-size; height:$sprite-size; // must restrict viewport, otherwise other sprites may "bleed through"
// could set shared standard tilesheet `background-image: url(...)`
// other standard styles, like `display:inline-block` or `position:absolute`
}
// helper for assigning positioning using friendlier numbers like "5" instead of doing the math
@mixin sprite-offset($xoffset:0, $yoffset:0, $increment:$sprite-size, $padding: $sprite-padding) {
background-position: -($xoffset*($increment + $padding)) -($yoffset*($increment + $padding));
}
"flotar" un fondo de una sprite, como the answer by @jose-faeti indica que tendrías que involve a placeholder element
<div class="float-bg">
<div class="bg"></div>
<p>Lorem ipsum dolor si...</p>
</div>
con estilo como:
.float-bg .bg {
@extend %sprite; // apply sizing properties
background-image: url(...); // actually set the background tiles
@include sprite-offset(4);
// specific configuration per accepted answer
position:absolute;
top: 0;
right: 0;
}
En mi respuesta original, a create a list of buttons, usted podría:
// list out the styles names for each button
$buttons: 'help', 'font', 'layerup', 'layerdown', 'transform', 'export', 'save', 'clear', 'move-left', 'move-right', 'move-up', 'move-down', 'png', 'jpg', 'svg', 'funky';
.btns > * { @extend %sprite; background-image:... } // apply sizing properties, bg
// autoassigns positioning
@for $i from 1 through length($buttons) {
$btn: nth($buttons, $i);
.btn-#{$btn} {
// @extend .sprite;
@include sprite-offset($i - 1);
}
}
sería luego trabajar en something like:
<ul class="btns">
<li class="btn-help">...</li>
<li class="btn-font">...</li>
<li class="btn-save">...</li>
<li class="btn-export">...</li>
<li class="btn-etc">...</li>
<li class="btn-etc">...</li>
</ul>
La posición del píxel es elegir qué parte del sprite se debe recoger. Sin embargo, esa parte del sprite debería aparecer ÚNICAMENTE en la esquina superior derecha del div. ¿Hay alguna manera de hacer esto usando sprites? –
Puedes hacer un pequeño div, que tenga el tamaño del sprite y darle el fondo de sprite como siempre lo haces. Luego coloque ese div dentro de su div 200px * 200px y otorgue la posición sprite div 'absoluta; arriba: 0; derecha: 0; '. El padre debe tener 'position: relative' or' position: absolute' también, o el posicionamiento no funcionará correctamente. – GolezTrol
@MaximDsouza ¿Ha resuelto su problema todavía? – GolezTrol