11523 sujets

JavaScript, DOM et API Web HTML5

hello, est il possible d'utiliser une feuille CSS particulière quand le javascript est désactivé chez l'utilisateur ?

Merci !
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)
Bonsoir,
Gatsu35 a écrit :
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";

Très intéressant ! Si ça marche sur tous les navigateurs, c'est une technique qui en vaut la peine ! Smiley smile
C'est le cas, cette technique est en ce moment même utilisée sur des sites assez gros Smiley lol .

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" Smiley lol 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
gordie a écrit :
Au fait, pourquoi pas mettre plutôt les CSS dans <noscript> ?

Ben ça dépend si tu veux faire deux feuilles de styles complètement différentes, ou si tu veux juste appliquer quelques correctifs dans le cas où JS est disponible.
Et <noscript> est en général assez peu utilisé, car il ne permet pas une analyse assez fine du support de JavaScript (DOM, ...).