Nunca lo había intentado antes. Creé un sprite de imagen que contiene dos iconos. Cada ícono tiene 26px de ancho y alto. Entonces el sprite es 26x52px.CSS: utilizando sprites de imagen con css pseudoclases: antes y después de
Tengo un elemento que está en un div.something o en un div.anything. Dependiendo de la clase en la que se encuentre, quiero agregar una tapa de esquina hacia la izquierda o hacia la derecha.
Por lo tanto, estoy posicionando el elemento relativo, aplicando la pseudoclass :before
al img y colocándolo absoluto con un alto y ancho de 26px para que solo un icono del sprite encaje. También aplique "overflow: oculto "con el fin de ocultar el segundo icono en el sprite.
.element {
position:relative;
}
.element:before{
content: url("../images/sprite.png");
position: absolute;
height:26px;
width:26px;
overflow:hidden;
}
.something .element:before {
top: -2px;
left: -2px;
}
anything .element:before {
top: -28px;
right: -2px;
}
Esto funciona muy bien para la esquina izquierda donde utilizo el primer icono en la parte superior del sprite. Sin embargo, ahora me pregunto cómo puedo mostrar solo el segundo ícono en el sprite para el "elemento cualquiera".
Así que, en realidad, la "máscara" debe colocarse en -2px, -2px, pero la imagen interna del sprite debe comenzar en -26px, por lo que se muestra el segundo icono.
¿Es esto posible con CSS de la forma en que lo estoy haciendo ahora mismo?
puedo mostrar una demo http://jsfiddle.net/ de lo que tiene hasta ahora? Por lo que sé, ': before' no funciona con elementos' img': http://jsfiddle.net/thirtydot/CWXS3/. Entonces, tu pregunta es bastante confusa. – thirtydot
edité mi pregunta a .element not img. Solo quería que sea más fácil de entender. No sabía que no funciona con img – matt
Bueno, eso tiene sentido. La respuesta que le dieron es correcta. Dale una lectura: http://tinyurl.com/so-hints. Me gusta esta parte: '" No me des código que es "algo así como" el código real, pero que claramente no es el código real "'. – thirtydot