5568 sujets

Sémantique web et HTML

Bonjour à tous!

j'avais, en son temps, un problème que je croyais FUC (Flash of Unstyled Content). Ceci dit, après avoir décortiquer mon code HTML et CSS dans tous les sens, j'ai trouvé ce qui n'allait pas dans mon cas :

j'ai une balise meta qui dit ceci:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

et si je la met, j'ai un flash blanc, puis le contenu s'affiche. Si je l'enlève, vide le cache et recharge la page, c'est super, il n'y a pas le flash blanc...

A tout hasard, est-ce que quelqu'un a une idée de comment pailler à ce problème? J'ai essayé avec ou sans toutes mes CSS, ça se comporte de la même manière...

Si jamais qqun a une idée... merci d'avance
rekam
Bon, alors pour les curieux qui auraient aussi ce problème tout aussi curieux, j'ai réussi à le résoudre en rajoutant, coté php, le header:

<?php
header('Content-Type: text/html; charset=utf-8');
?>

Mais surtout, SURTOUT!, ne pas me demandez pourquoi Smiley lol

bonne!
rekam
Modifié par rekam (18 Jan 2008 - 10:21)
Bonjour,

L'en-tête HTTP Content-Type peut aussi être configurée du côté du serveur web (par exemple, avec Apache, dans un fichier .htaccess).

Par contre, on conseille de l'indiquer également dans le code HTML avec la balise META qui va bien. De la sorte, si l'utilisateur enregistre la page en local l'information sur l'encodage sera conservée.

Ensuite, quelques questions en vrac:
- quels sont les navigateurs concernés?
- est-ce que tu as tenté la solution en-tête HTTP + balise meta?
- à quel niveau du head était placée ta balise meta?
Alors les navigateurs concernés étaient en tous cas les 3 grands habituels, soit IE, Firefox, Opera et Safari sur toutes les plateformes possibles dont Linux.

oui, j'ai tenté la solution entête HTTP + meta et ça fonctionne effectivement très bien! Smiley biggrin

J'ai mis le meta tout en bas du head, sous l'inclusion des javascript, css, et autres keyword, author etc.

voilà, au plaisir et salut!
rekam
rekam a écrit :
J'ai mis le meta tout en bas du head, sous l'inclusion des javascript, css, et autres keyword, author etc.

Ça vient peut-être de là. Les navigateurs sont souvent configurés (sous nos latitudes) pour supposer que l'encodage des pages est iso-8859-1. S'ils reçoivent de l'UTF-8 sans être au courant, et si l'information comme quoi la page est en UTF-8 leur parvient au bout de trois plombes, il se peut que ça les perturbe un peu (supposition gratuite de ma part...).

En général, on procède plutôt ainsi:

<!DOCTYPE html>

<html lang="fr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<!-- Ici le reste du contenu de HEAD -->
	</head>
...
</html>

Bien sûr, avec l'en-tête HTTP qui va bien, le navigateur reçoit l'information sur l'encodage dès qu'il reçoit une réponse du serveur, donc c'est l'idéal. Mais ça n'est pas une raison pour se priver d'une balise meta «de sécurité». Smiley smile