11523 sujets
JavaScript, DOM et API Web HTML5
gordie a écrit :
hello, est il possible d'utiliser une feuille CSS particulière quand le javascript est désactivé chez l'utilisateur ?
Merci !
Pourquoi ? la question est peut etre bete mais pourquoi veux-tu faire cela ?
peut être pour afficher des contenus qui sont cachés quand le JS est activé.
Si tu veux j'ai une méthode simple et efficace, c'est de passer par une classe CSS qui surcharge les classes quand il y a du JS.
D'abord une ligne en JS que tu mets n'importe ou et pas besoin de la mettre sur le onload.
document.documentElement.className+=" hasJS";
ensuite en CSS
.classequifaitdeschoses { color:red } /* sans JS c'est rouge */
.hasJS .classequifaitdeschoses { color:green } /* avec JS c'est vert */
Modifié par Gatsu35 (02 Dec 2007 - 18:22)
C'est le cas, cette technique est en ce moment même utilisée sur des sites assez gros .
Au debut j'avais une fonction qui tournait en boucle via un setTimeout pour coller la classe sur la body avant le chargement de tout élément, mais ce n'était pas suffisant et assez moche.
Je faisait ça car le body n'existe au moment où les script qui sont situés dans le head s'executes/se chargent.
Et parfois ca générait une micro merde, donc notre petit génie 0x90 de HFR qui bossait chez nous a trouvé encore mieux, ya toujours un élément qui existe meme au moement du chargement des éléments, c'est <HTML>
donc suffit de taper dessus via "document.documentElemen" et ca marche sur tous les browser y compris IE5.
Cette technique est assez utile pour tout ce qui est menu de navigation, ça évite à l"utilisateur de se prendre une claque dans la gueule et voir des menu pendant le chargement de la page qui sont cachés une fois la page chargée. On voit clairement cet exemple sur le site de pouipoui desing.
Au debut j'avais une fonction qui tournait en boucle via un setTimeout pour coller la classe sur la body avant le chargement de tout élément, mais ce n'était pas suffisant et assez moche.
Je faisait ça car le body n'existe au moment où les script qui sont situés dans le head s'executes/se chargent.
Et parfois ca générait une micro merde, donc notre petit génie 0x90 de HFR qui bossait chez nous a trouvé encore mieux, ya toujours un élément qui existe meme au moement du chargement des éléments, c'est <HTML>
donc suffit de taper dessus via "document.documentElemen" et ca marche sur tous les browser y compris IE5.
Cette technique est assez utile pour tout ce qui est menu de navigation, ça évite à l"utilisateur de se prendre une claque dans la gueule et voir des menu pendant le chargement de la page qui sont cachés une fois la page chargée. On voit clairement cet exemple sur le site de pouipoui desing.
#menu li {color:red;}
.hasJS #menu li ul {display:none}
.hasJS #menu li:hover ul {display:block