Bonjour, je vais tenter d'expliquer mon problème qui est aussi bizarre qu'intéressant, souhaitez moi bonne chance!
Je souhaite faire un système de "vote par étoiles" et pour cela je me suis inspirée de la logique présentée sur ce lien (en anglais):
http://www.komodomedia.com/blog/2006/01/css-star-rating-part-deux/
Pas grave si vous n'avez pas le courage de vous plongez dedans, voici ma question. Ci-après j'ai mis deux morceaux de CSS qui ne différent que par une seule ligne:
Il s'agit du "left:0px" qui est factorisé par le biais d'un div:hover dans le premier cas, et qui ne l'est pas dans le second où il apparait pour chacun des div.style1:hover, div.style2:hover, etc ...
Pour comprendre sachez que mon HTML se compose d'un div conteneur qui a le style .star-rating, et contenant plusieurs div (avec les styles one-star, two-star, etc ...). L'objectif est que, lorsque l'on passe la souris sur l'un des cinq div (les cinq étoiles), il soit ramené tout à gauche et s'élargisse (width qui grandit).
Ma question porte sur le fait que le dans le premier cas ça ne marche pas (le div n'est pas ramené à 0px, il reste collé à droite du div précédent, comme s'il venait se floater-left) et que dans le second cas ça marche! OR je ne vois aucune différence entre les deux codes, le premier ne faisant que "factoriser" le left:0px.
Suis-je assez claire?
Merci d'avance pour vos éclaircissements!
Cynth
Modifié par Cynthia (26 Oct 2010 - 19:08)
Je souhaite faire un système de "vote par étoiles" et pour cela je me suis inspirée de la logique présentée sur ce lien (en anglais):
http://www.komodomedia.com/blog/2006/01/css-star-rating-part-deux/
Pas grave si vous n'avez pas le courage de vous plongez dedans, voici ma question. Ci-après j'ai mis deux morceaux de CSS qui ne différent que par une seule ligne:
.star-rating div:hover {
background: url(star_rating2.gif) left center;
z-index: 2;
[b]left: 0px;[/b]
}
.star-rating div.one-star{
left: 0px;
}
.star-rating div.two-stars{
left: 30px;
}
.star-rating div.three-stars{
left: 60px;
}
.star-rating div.four-stars{
left: 90px;
}
.star-rating div.five-stars{
left: 120px;
}
.star-rating div.one-star:hover{
width:30px;
}
.star-rating div.two-stars:hover{
width: 60px;
}
.star-rating div.three-stars:hover{
width: 90px;
}
.star-rating div.four-stars:hover{
width: 120px;
}
.star-rating div.five-stars:hover{
width: 150px;
}
.star-rating div:hover {
background: url(star_rating2.gif) left center;
z-index: 2;
}
.star-rating div.one-star{
left: 0px;
}
.star-rating div.two-stars{
left: 30px;
}
.star-rating div.three-stars{
left: 60px;
}
.star-rating div.four-stars{
left: 90px;
}
.star-rating div.five-stars{
left: 120px;
}
.star-rating div.one-star:hover{
width:30px;
[b]left: 0px;[/b]
}
.star-rating div.two-stars:hover{
width: 60px;
[b]left: 0px;[/b]
}
.star-rating div.three-stars:hover{
width: 90px;
[b]left: 0px;[/b]
}
.star-rating div.four-stars:hover{
width: 120px;
[b]left: 0px;[/b]
}
.star-rating div.five-stars:hover{
width: 150px;
[b]left: 0px;[/b]
}
Il s'agit du "left:0px" qui est factorisé par le biais d'un div:hover dans le premier cas, et qui ne l'est pas dans le second où il apparait pour chacun des div.style1:hover, div.style2:hover, etc ...
Pour comprendre sachez que mon HTML se compose d'un div conteneur qui a le style .star-rating, et contenant plusieurs div (avec les styles one-star, two-star, etc ...). L'objectif est que, lorsque l'on passe la souris sur l'un des cinq div (les cinq étoiles), il soit ramené tout à gauche et s'élargisse (width qui grandit).
Ma question porte sur le fait que le dans le premier cas ça ne marche pas (le div n'est pas ramené à 0px, il reste collé à droite du div précédent, comme s'il venait se floater-left) et que dans le second cas ça marche! OR je ne vois aucune différence entre les deux codes, le premier ne faisant que "factoriser" le left:0px.
Suis-je assez claire?
Merci d'avance pour vos éclaircissements!
Cynth
Modifié par Cynthia (26 Oct 2010 - 19:08)