Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour à tous =)

Étant très satisfait de ce forum, je reviens poser une petite question qui me gène en ce moment et dont je ne trouve pas de réponse. Je compte sur vous. :smartass:

Je met peu à peu mon site aux normes W3C, et j'ai trouvé il y a peu une erreur dans mon code concernant les balises "noscript".

J'avais trouvé une réponse je ne sais plus où, me conseillant de placer les balises <noscript> entre les balises <object> pour résoudre le problème de l'erreur que me retournait le W3C.

L'astuce fonctionne, et j'en était satisfait jusqu'au jour où j'ai découvert, en testant mon site avant de le mettre en ligne, que sous safari la balise "object" qui entoure la balise "noscript" déforme considèrablement la page, alors que sous firefox et ie je n'avais rien remarqué de semblable.

Kézako? Merci d'avance pour toutes vos réponses.^^

Edit : J'aurai peut-être dû poster ça dans la zone (x)HTML et CSS, et j'étais d'ailleurs presque persuadé de l'avoir posté dans cette section. Désolé d'avance si ça gène, je me suis un peu perdu là pour le coup. :s

Modifié par Boa
Posté

Rebonjour

J'ai simplement contourné le problème en créeant une classe "noscript" qui est rendue invisible avec javascript.

Donc topic clos sauf si qqn voudrai faire une remarque supplémentaire.

Bonne journée. =)

Posté

Une remarque supplémentaire :)

Quelle idée saugrenue d'intégrer <noscript> dans <object> ! je ne vois pas en quoi ça change un problème d'imbrication, au mieux c'est de la grosse bidouille, et j'espère que ce n'est pas sur le Hub qu'on t'a conseillé ça...

D'autant que selon les navigateurs, <object> a une taille par défaut qui explique certainement le problème de déformation de la page.

Je suis persuadé qu'une solution plus simple aurait être trouvée, mais si cette rustine te convient alors tant mieux ;)

Posté

Hello, merci d'avoir répondu =)

En fait si vous avez mieux à proposer je suis largement preneur.^^

Merci d'avance =]

Posté

Salut

Tout dépend de ton code... et de comment tu l'as agencé.

Mais sinon la balise <noscript> s'écrit de la manière suivante, et exclusivement de cette manière.

<script type="text/javascript">
[ici ton JS]
</script>
<noscript>
<p>Contenu alternatif pour les sans-JS (dont moteurs)</p>
</noscript>

En balisant de cette manière, il n'y a aucune raison pour que le validateur w3c trouve une erreur d'imbrication.

Si le validateur râle quand même, trois possibilités

  • Il y a un autre problème en amont sur lequel le validateur se prend les pieds, et il reporte ensuite faussement l'erreur sur un innocent <noscript> (ça fait partie des choses qui arrivent avec le validateur).
  • Ou bien peut-être as tu écrit du texte dans <noscript> sans l'insérer dans des éléments de type bloc. Un contenu "noscripté" doit obligatoirement être contenu dans des balises telles que <p>, <h1>-<h6>, <div>, etc.
  • Une balise de type bloc ne peut pas être insérée dans une balise de type en-ligne. Si par exemple ton <noscript> (qui est de type bloc) est contenu dans un <a> (qui est de type en-ligne), tu obtiens une erreur.

Posté

Exaaact, j'avais l'erreur de ne pas avoir mis de balise du genre <p> dans les <noscript>, j'ignorais qu'il le fallait obligatoirement même en HTML 4.01. :D

Merci beaucoup =D

Bonne journée =)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...