28172 sujets

CSS et mise en forme, CSS3

Bonjour,

j'aimerai changer le fond d'une div lors du passage de la souris sur un lien compris dans cette div. Pour l'instant j'arrive à changer le fond du lien,

a:hover

le fond de la div
div:hover

mais pas le fond de la div lorsque l'on passe sur le lien !

J'avais pensé à ça :

<style>
#test {background-color:red;height:200px;width:200px;}
#test a:hover #test{background-color:black;}
</style>


<div id="test">
<a href="#">BIBI</a></div>


Sans résultat... alors est-ce seulement possible en CSS ?

Merci !
Modifié par JimmyWJimmy (09 Mar 2011 - 16:29)
Non c'est totalement impossible en CSS, les sélecteurs CSS (contrairement à d'autres DSL plus puissants comme xPath) sont limités aux descendants et adjacents.
Il est donc impossible de remonter dans l'arborescence, tu ne peux que descendre ou traverser latéralement.
@Tony : Merci mais non Smiley smile

@Ywg : C'est bien ce que je me disais j'avais surtout besoin d'une confirmation. Remarque : c'est bien dommage ça permettrait des comportements vraiment intéressants notamment l'apparition d'éléments au survol de la souris.

Merci à tous les deux
Modérateur
Bonjour,

J'avais proposé une solution avec un display:block au hover sur le lien, mais c'était très loin d'être une bonne solution. J'ai donc retiré mon message.

Le mieux me semble de se pencher vers le Javascript qui peut réaliser ce type d'effet très facilement et plus efficacement que n'importe quelle bidouille CSS.
Note avant de passer en résolu :

Je cherchais à faire un scrolling sur lien avec trois fonds différents dans le sprite.
Administrateur
JimmyWJimmy a écrit :
des comportements (...) notamment l'apparition d'éléments au survol de la souris.

Que des mots-clés pour Javascript Smiley smile

Note : le survol de la souris c'est une chose, penser systématiquement à la prise de focus au clavier c'est (beaucoup) mieux. Mais c'était peut-être un raccourci d'écriture.