28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

J'ai scruter un peu les forums et je n'ai pas trouver de réponse à ma question. J'ai vu qu'il était possible, en CSS, d'avoir une balise en hover qui agit sur ses enfants de cette façon :

"- A:hover B (si B est descendant de A)
- A:hover > B (si B est fils de A)
- A:hover + B (si B est frère directement suivant de A)
- A:hover ~ B (si B est un frère suivant de A)"

Je me demandais s'il était possible de faire l'inverse, c'est à dire quelque chose comme :
B:hover < A (avec B fils de A)

Et si ce n'est pas possible en CSS, quel langage est le mieux adapté ?

Merci !
Modérateur
Plop,

Donovan a écrit :
Je me demandais s'il était possible de faire l'inverse, c'est à dire quelque chose comme :
B:hover &lt; A (avec B fils de A)

Nope, pas à ma connaissance en full CSS.

Donovan a écrit :
Et si ce n'est pas possible en CSS, quel langage est le mieux adapté ?

Le Js
En CSS c'est prévu dans les bacs... mais il faudra attendre un bon moment encore. En attendant il faut donc effectivement passer par une solution javascript.
Administrateur
Bonjour et bienvenue, Smiley smile

une astuce peut être de placer l'élément à modifier au-dessus visuellement (position: absolute ou moins couramment relative) mais juste après dans le code HTML : il est alors atteignable avec A:hover + B ou A:hover ~ B

Mais si jQuery est déjà chargé, c'est pas 3 lignes de plus qui vont dénaturer un site pour un effet visuel Smiley smile (c'est moins embêtant que de trop grosses bidouilles CSS)
En fait, j'ai une section parent en position relative, et je souhaitais la déplacer lorsqu'on cliquait sur un bouton (ou div) placé dedans, et ne m'y connaissant pas beaucoup en javascript je voulais savoir si c'était possible seulement en CSS ^^

Enfin bon, j'avais réussi à l'éviter jusqu'à maintenant, mais ça y est il va falloir l'affronter ce javascript ^^
Administrateur
Évite d'utiliser une div pour agir comme un bouton : c'est l'élément button qui est fait pour ça. Il a le rôle d'un bouton et il réagit au clavier (il est atteignable avec la touche Tab et "actionnable" contrairement à un div) et à la souris et au touch comme un bouton sans une ligne de JS ni d'attribut ARIA (role="button"). Tous les avantages pour 0 effort Smiley smile
Au pire un lien a avec href="#" mais le button reste préférable