Class css et aspirine

Derrièrre ce titre prometteur se cache une question tout ce qu’il y a de plus bête.
Imaginons que dans un fichier css, j’ai défini 2 classes précises, x et y. Ensuite imaginons que j’applique x sur un objet quelconque de la page, et que j’aimerai que sur un mouse-over, en javascript, l’objet prenne la classe y. Mais voilà j’y arrive pas Donc si quelqu’un sait comment faire (sous ie), ça m’arrangerait pas mal.
Ce message a été édité par BodySplash le 25/06/2004

A première vue une petite fonction javascript sur le “onmouseover” qui change la propriété “class” de ton objet ? Genre monDiv.class = “toto” ?

Je suppose que les navigaeurs remettent à jour automatiquement…

On pourra confirmer ou me bruler vif si j’ai raison ou non.

Ton fichier CSS, il est chargé à part ?
Si oui, tu es sûr que javascript peut aller changer des paramètres dans un fichier externe ?

Je pense que non.
Le mouse-over en CSS c’est élément:hover, exemples :

a:hover {border-bottom:1px solid #000;}
p:hover {background-color:#fff;}
Sauf que IE ne prend en compte que a:hover, donc c’est pas accessible du tout.

Une solution pourrait être de mettre le code CSS dans la page, en mettant style="" dans la balise que tu veux modifier, et là le javascript devrait marcher. Ou pas.
Ou alors dans le .

Si tu as une page d’exemple sous la main, ça serait pratique pour se rendre compte de la situation.

Edit : euh, ton problème, c’est à quel niveau, au niveau du javascript ou du CSS ?

Ce message a été édité par Moe le 25/06/2004

[quote]Ton fichier CSS, il est chargé à part ?
Si oui, tu es sûr que javascript peut aller changer des paramètres dans un fichier externe ?

Je pense que non.[/quote]Bah c’est pas grave. C’est un noeud du DOM qu’il change, pas le contenu de la css. (ouais et je dis LA css parce que c’est UNE feuille de style et qu’en anglais aussi y a du féminin) (dingue hein?)

Donc ça roule.

Autrement tu peux utiliser hover sur n’importe quel élément et ça marchera avec ie. A condition d’utiliser google et “ie 7.0 css” comme mot-clé.

Oué je suis comme ça moi. Toujours on the bleeding edge.

[quote]Le mouse-over en CSS c’est élément:hover, exemples :

a:hover {border-bottom:1px solid #000;}
p:hover {background-color:#fff;}
Sauf que IE ne prend en compte que a:hover, donc c’est pas accessible du tout.

[/quote]Au passage, il semble (d’après le bouquin que j’ai sous les yeux) que dans les specs CSS2, :hover ne doivent être utilisé que pour la balise a (je demande a être contredit  ) donc pour une fois IE serait pas en tort.

mais de toute façon la solution qui marche partout avec un peu de javascript est  ici.


Ce message a été édité par engy le 25/06/2004

L’excellent site de référence index.css nous dit:
“CSS2 notes that browsers do not need to support this pseudo-class, and with some browsers or systems implementing this system may be impractical or impossible.”

Bon je rentre de week-end et je vous remercie, je vais donc tenter de bidouiller mon script pour que ça marche. Cependant, j’avais déjà essayé de faire des choses du genre monOBjet.class, ou monOBjet.style.class etc mais je n’ai jamais réussi à changer la classe comme ça. Bon ceci dit je vais tester vos réponses, et je ne manquerai pas de vous dire si ça marche

EDIT: oki c’est bon ça marche au quart de poil merci pour les conseils
Ce message a été édité par BodySplash le 28/06/2004

Haaa, enfin je peux répondre sur les forums (mozilla 1.7 ou correction de glop, sais pas)

Donc, pour changer la classe depuis Javascript c’est : monObject.className = « newclasse »;
Un peu de javascript n’a jamais fait de mal, mais juste un peu :wink: