28172 sujets

CSS et mise en forme, CSS3

Salut à tous,

j'ai un petit problème avec le CSS:

sur mon site, j'ai une galerie générée dynamiquement, avec changement de miniature au survol de la souris. Pour l'instant tout est géré en javascript. Mais le code est vraiment moche, et ça demande à l'utilisateur de télécharger 2*n images (couleurs/noir et blanc), avec n le nombre d'images totales.
J'avais donc pensé à utiliser la technique des sprites pour diviser par 2 le nombre d'images à télécharger, et supprimer les bouts de code JS.

J'ai donc réécrit la fonction de génération d'une miniature, de manière à retourner un truc du genre:
<a href="#" style="background: transparent url('une_image_sprite.jpg') 0px 0px no-repeat;"></a>


Et le code CSS :
	        #images a
			{
				width:50px;
				height:50px;
				display:block;
			}
			
			#images a:hover 
			{
				background-position: 0 -50px;
			}


Sauf que... Ca ne marche pas. Du tout.
J'ai fait des tests en fixant le background au sein d'un élément, et ça ne marche pas. C'est le comportement normal ?
Est ce qu'il y a une solution alternative autre que de générer un code CSS particulier à chaque image ?

Merci d'avance Smiley cligne
Modifié par Zed13 (08 Aug 2011 - 20:32)
on est d'accord que la tu fait monter ton sprite de 50px vers le haut ? donc ton sprite en gros c'est

*****************

IMAGE NORMAL


----------------------
*****************


IMAGE HOVER

----------------------

?
Oui oui on est bien d'accord; d'ailleurs le changement d'image marche si je déclare le background dans le fichier css, et pas directement comme un style de l'élément.

Mais comme tout est chargé dynamiquement, si j'avais un autre moyen de le faire autrement que de déclarer un id css pour chaque image, ça m'arrangerait Smiley langue
le style dans l'html passe toujours en priorité par rapport au style de ta feuille de style.
enlève la propriété de l'attribut style de ta balise a pour la mettre dans ta CSS.

si tu ne peux pas l'enlever, met un !important a ton background-position. toutefois il est préférable d'utiliser la première méthode.