inbriquer <link> et <noscript>

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

inbriquer <link> et <noscript>

Message par martin »

Bonjour à tous,

je code un truc en ce moment en html 4.01 strict. J'utilise abondament les css, mais aussi javascript. Cependant je tiens à ce que tout fonctionne avec javascript désactivé. Or sans javascript une partie (légère) de mes css n'est plus adapté (c'est pas beau).
La solution il me semble, c'est d'affecter ces propriétés css via javascript, et comme çà c'est beau avec ou sans javascript.

Mais j'ai eu une idée pour une autre solution, je peux réaffecter certaines propriétés css via un 2e fichier css appeler dans un 2e <link> lui même imbriqué dans une balise noscript.
J'essaie, et çà marche sous moz1.7 et ie6, et ils ne basculent pas en quirk mode.

Le problème c'est que la spécification html ne l'autorise pas :cry:
Interdit de mettre la balise noscript dans le head, et interdit de mettre la balise link dans le body (l'autre solution similaire).
Et le validateur, il en veut pas ....

Qu'est ce que vous en pensez ? je trouvais cette solution élégante. Est ce que je m'assoie sur les validateurs puisque les navigateurs ne se plaignent pas ? De plus pourquoi d'après vous la spécification refuse ces cas (il doit bien y avoir une raison)
Si vous voulez voir, un essai simple et un autre
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message par jv2759 »

Si tu veux utiliser deux feuille de style différente pour javascripte activer et non actuver.

Le mieux ne serait-il pas de faire ton site avec la feuille de style sans javascripte, et que ce soit le javascripte sur un onload qui modifie les classe qu'il veux...


La balise noscripte est prévut pour mettre du html la ou le javascripte ne marche pas... Donc ce n'est pas prévut pour aller dans des head...


Sinon autre solution, puisque dans ta pages la seul différence c'est une feuille de scripte. Et si tu le faisait en php... Je m'explique, tu fait une premiére pages d'acceuile avec un truc dans le genre, si tu comprend javascripte tu fait un document.write qui écrie un lien, sinon un noscripte qui en écrie un autre...

Et avec ce lien tu crée un cookie et dans chaque pages tu lie le cookie et en fonction de la valeur tu met l'une ou l'un ou l'autre...


Ou alors tu utilise javascripte pour qu'il ecrive un cookie, apres si le cookie existe, alors c'est bon sinon cela veux dire que connais pas le javascripte... Seul probléme il faut que les cookie soit activer...


PS : Moi le vrais conseil que je te donnerais c'est de revoir ton site de telle sorte que sans javascripte cela puisse marchais tout de même...
Inscrit sur la liste des abonner absent...
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

jv2759 je ne cherche pas une solution, j'en ai une je l'ai dit, affecter les quelques css devant être différentes via javascript, effectivement sur un body onload.

Mais je souhaitais connaitre votre avis sur cette solution invalide, mais qui fonctionne !
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message par jv2759 »

martin a écrit :Mais je souhaitais connaitre votre avis sur cette solution invalide, mais qui fonctionne !
Moi je te déconseil de l'utiliser. Pour la simple et bonne raison que c'est invalide. Je ne dit pas que le w3c et parole d'évengile. Mais si tu utilise cela aujourd'hui et que demain mozilla améliore encore plus son moteur pour rejeter ce genre de chose tu fait comment...

Respecter les standards, et la seul solution pour faire des site qui marcherons toujours...

Maintenant sur la logique de cette interdiction. Sans être convaincu, je pense tout de même que leur aproche me semble plus juste. Car normalement un site devrait être fonctionel sans javascripte. Je ne parle même pas de javascripte désactiver... Donc dans ma vision le noscripte n'as même pas forcement besoin d'être utiliser...

En plus noscripte n'est la que pour remplacer scripte. Or si dans head il y as bien une balise scripte, cette derniére ne devrait pas affecter directement la pages elle même. Car il ne devrait y avoir que des initialisation ainsi que des fonction. Donc pas de raison particuliére d'avoir une balise qui permet de remplacer...
Inscrit sur la liste des abonner absent...
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Si je comprend bien, une partie de la mise en page se fait par javascript c'est bien ça ?
Pourquoi ne pas tout mettre dans la CSS ? A priori le JS ne sert pas à la mise en page... mais à mettre de la dynamique dans tes pages.

On peut avoir l'exemple de cette page qui marche pas ?

PS : le problème, si c 'est invalide, c'est que ça marche aujourd'hui dans certains navigateurs peu respectueux des standards (Mozilla, IE, ...).
Mais qu'en sera-t-il demain ? Peut-être que dans un navigateur ça ne marchera pas, et peut-être même qu'un navigateur actuel ne supportera pas ça !
C'est exactement le problème de tous ces sites qui ne fonctionnent pas avec Mozilla, et tu est en train de faire pareil.
Donc le problème n'est pas l'invalidité, dont à la rigueur on s'en fiche, mais c'est que tu part de l'idée que les navigateurs auront une gestion des erreurs telle ou telle, et tu ne peut pas durablement te baser sur la gestion d'erreur de 2 navigateurs (ou plus ?) pour créer ton site. C'est tout !
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités