Changer le style css

[Résolu]
Signaler
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
-
Messages postés
36
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
23 juin 2008
-
Salut !

J'ai créé un menu en javascript avec une feuille de style pour les menus, sous-menus etc ...

en gros :

menu 1,
menu 2,
menu 3,

----

ssmenu 1,
,

----

ssmenu 2

Pas de problème !

Ce que je voudrais faire, c'est avoir une zone de texte et onChange sur cette zone de texte changer la feuille de style de mon menu.
vite fait ca donne :

function changeStyle(maCouleur)
{
document.stylesheets["menu"].backgroundColor=maCouleur;
}

Ca ne marche pas ! Si qqun a une idée, elle sera la bienvenue ;)
a+++

9 réponses

Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
Je ne connaissait pas non plus document.stylesheets et je viens de découvrir qqchose qui va t'intéresser aussi :



http://developpeur.journaldunet.com/tutoriel/dht/020527jscript_css.shtml
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
Salut !
ca ca doit marcher je pense :

<TD class="menu"onMouseOver="this.className='menu_over';"onMouseOut="this.className='menu';">Item 1</TD>

Allez a+++

_____________________
 http://www.bzh-metal.com
Communauté Métal Bretonne
Messages postés
45
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
15 mars 2005

document.stylesheets["menu"].backgroundColor= maCouleur;

1) tu fais appel à l'élément "menu"... qui n'existe pas (en tout cas dans le code que tu nous montre).

2) Encadre ton code par des balises div:

id="menu" >
... ton menu ...

3) Et puis modifie ta fonction avec un truc de ce genre:

function changeStyle(maCouleur)
{
document.menu.style.backgroundColor =maCouleur;
}

PS: Je n'ai pas testé.



@+

- PIGIME -
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
Salut !

oui j'avais pas mis tout mon code :
<style>
menu
{
backgroundColor: #FFFFFF;
}
</style>

Merci pour ta solution mais ca ne marchera pas, vu que je dois changer le style de plusieurs tableau (enfin de certaines cellules de mes tableaux)

J'ai fait ca autrement du coup , merci quand meme
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
Si tu as une feuille de style extérieure:

<link rel="stylesheet" href="menu.css" />

Tu peut créer une deuxième feuille de style menu2.css qui contiendras ton changement de style et que tu pourra changer dynamiquement :

function changeStyle()
{
document.getElementsByTagName('link')[0].href="menu2.css";
}

On aimerait savoir comment tu as fait autrement ?
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
Ah ouai je connaissait pas ca !

mais dans mon cas, tu peux, dans le css, récupérer la valeur de mon input text ?

En fait ma solut n'en est pas une vraiment.
Ce que je voulais faire c'est pouvoir changer les couleurs d'un site et voir l'apercu en temps réel.
Du coup j'ai fait une page bidon, avec un menu déroulé, j'ai mis un id a chaque cellule (qui correspondent chacune à un style : menu, menu survolé, menu sélectionné, sous-menu .....)

Et quand je change mon texte ('fin j'ai une palette faite en js), je change le style sélectionné !
voila !
a+++
Messages postés
536
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
29 janvier 2009
1
ah oué ! nickel ! jte remercie c cool !
Messages postés
36
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
23 juin 2008

Hello, J'ai egalement une question concernant la modification des styles en Javascript. J'ai cree un menu dans un tableau : <td class="menu">item1</td>. Avec une fonction Javascript j'aimerai changer l'attribut class de l'objet td lors de l'evenement MouseOver de facon a ce que la propriete class ait ensuite pour valeur menu_over. Est-ce possible?

J'ai essaye differentes variante, mais je n'arrive pas au resultat voulu... Est-ce que vous pouvez m'aider?

Merci d'avance...
FD
Messages postés
36
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
23 juin 2008

Ca marche, merci pour l'info...