5568 sujets

Sémantique web et HTML

Hello tous,

j'ai changé le type MIME des pages de mon site (je suis passé de text/html à application/xhtml+xml). L'affichage fonctionne bien, ça m'a même permis de trouver des erreurs que j'ai pu corriger.

Par contre, j'ai une étrangerietude :
Selon le type MIME choisi, le fond du skin par défaut ne s'affiche pas correctement :
En text/html :
http://dominique.hoffmann.free.fr/source/index.php
Aucun problème.

En application/xhtml+xml :
http://dominique.hoffmann.free.fr/source/index2.php
J'ai créé juste une page pour faire voir le problème : le fond s'arrête en bas de page, et le reste est blanc !

Quelqu'un sait de quoi ça pourrait venir ?
Modifié par Nico3333fr (24 Jul 2006 - 22:33)
Bonjour,

En XHTML traité en tant qu'application/xhtml+xml, l'élément "magique" dont l'arrière-plan peind le canevas n'est plus <body>, mais <html> (http://www.w3.org/TR/CSS21/colors.html#q2)

Il faut donc appliquer ton arrière-plan à html.
Modifié par Laurent Denis (23 Jul 2006 - 10:00)
Quel talent ce Laurent, c'est tout à fait ça ! Smiley smile

Sinon IE 6 ne gère toujours pas correctement le type MIME application/xhtml+xml ? J'ai un bug quand j'essaie de consulter la page avec ce type MIME...
Nico3333fr a écrit :

Sinon IE 6 ne gère toujours pas correctement le type MIME application/xhtml+xml ? J'ai un bug quand j'essaie de consulter la page avec ce type MIME...


Ni IE6 ni IE7 tel qu'il se dessine à l'horizon.

Tu dois tester si le navigateur déclare explicitement accepter ce type de contenu ( champ HTTP Accept). Si ce n'est pas le cas, tu adresse le document en text/html en procédant aux éventuelles adaptations de css, de script, d'attributs (rétablir l'attribut lang à côté d'xml:lang, en particulier), bref : veiller à la compatibilité HTML du tout.
Modifié par Laurent Denis (23 Jul 2006 - 19:15)
Laurent Denis a écrit :

Ni IE6 ni IE7 tel qu'il se dessine à l'horizon.


Comme d'hab... IE me gonfle de plus en plus.

Laurent Denis a écrit :

Tu dois tester si le navigateur déclare explicitement accepter ce type de contenu ( champ HTTP Accept). Si ce n'est pas le cas, tu adresse le document en text/html en procédant aux éventuelles adaptations de css, de script, d'attributs (rétablir l'attribut lang à côté d'xml:lang, en particulier), bref : veiller à la compatibilité HTML du tout.


En bidouillant un peu, ça donne qqch comme ça pour les metas-tags :

<?php
$mystring = $_SERVER["HTTP_ACCEPT"];
$findme   = "application/xhtml+xml";
$pos = strpos($mystring, $findme);

if ($pos === false) {
echo " <meta http-equiv=\"content-Type\" content=\"text/html; charset=iso-8859-15\" />\n";
} else {
echo " <meta http-equiv=\"content-Type\" content=\"application/xhtml+xml; charset=iso-8859-15\" />\n";
}
?>


et sensiblement la même chose pour les headers serveurs :


...
if ($pos === false) {
header("Content-type: text/html; charset=iso-8859-15");
} else {
header("Content-type: application/xhtml+xml; charset=iso-8859-15");
}


et il me semble que ça fonctionne plutôt bien pour chaque browser, et ça c'est une bonne nouvelle ! Me reste plus qu'à adapter un peu les CSS...

Merci Laurent !
Ptite question : est-ce que IE gère correctement les propriétés sur "html" ?

style :


html{
...
}

Modifié par Nico3333fr (23 Jul 2006 - 23:48)
Laurent Denis a écrit :
Bonjour,

Oh que non ! Smiley cligne


Comme d'habitude...

Merci pour le coup de main, et le sujet passe donc en "résolu" !