28172 sujets

CSS et mise en forme, CSS3

Salut,
J'aimerai savoir si il existe des erreurs d'interprétation du code css lorsque l'on travaille sur un page php.
Je vous explique, je réalise en ce moment un design pour une connaissance qui travaille le php. Mon design ce compose d'une page index.php et d'une feuille de style. Lorsque je veux colorier le fond de mon document en noir, avec la commande ci-dessous, je me retrouve avec un fond noir uniquement derrière le contenu du site.
body {
	background: #000000;
}

Donc, au lieux d'avoir un fond noir, j'ai un cadre noir sur fond blanc.
Quelqu'un peut-il m'expliquer ce phénomène svp ?

J'ai remarquer que si je supprime la déclaration xml l'affichage se faisait correctement. Y a-t-il une déclaration spécifique pour l'usage du php ?
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


Merci
Modifié par lucifel (15 Aug 2009 - 23:44)
Pour commencer : rien à voir avec PHP.

Si tu tentes cela, tu devrais avoir le comportement souhaité :


html
{ 
   background-color:#000; 
   color:inherit;
}

En fait le body, s'étend, comme tu le remarques, uniquement à ta zone de contenu.
Modifié par Vincent Valentin (15 Aug 2009 - 21:32)
Ok merci mon problème est résolu mais j'ai remarqué que si j'utilise çà :
body { 
    background: #000000; 
}

L'affichage est différent si l'extension est .php ou .html, ce qui n'est pas normale vu que l'extension ne devrait rien changer dans ce cas ci.

En mettant le background sur la balise html mon problème est résolu, mais je suis quand même curieux de comprendre cette différence d'affichage.
Merci le liens ma aidé même si il ne s'agit pas du mode quirks vu que je travaille avec firefox.
J'ai remarqué que le problème survenait à cause de ma déclaration xml.
Je crois qu'il est temps que je revois un peu le doctype et les déclarations xml XD.

Merci du coup de mains.
Modifié par lucifel (15 Aug 2009 - 23:45)
La différence peut éventuellement être liée au parser utilisé: parser HTML (cas le plus courant) ou parser XML (cas rare).

Si tu accèdes à tes fichiers locaux directement, sans passer par un serveur web (l'adresse est alors file://C:/Blabla/monfichier par exemple), alors il n'y a aucun serveur web pour informer le navigateur sur le type de contenu envoyé. Pas d'en-tête HTTP Content-Type et de type MIME associé.

Pour palier à ce problème, les navigateurs utilisent plusieurs techniques pour «deviner» le type de contenu. La première, c'est regarder l'extension du fichier. La deuxième, c'est lire le contenu du fichier à la recherche de signes propre à tel ou tel langage (content sniffing).

Ici, si tu as un fichier test.html et un fichier identique nommé test.php:
- pour test.html, le navigateur suppose un type MIME "text/html", et va utiliser son parser HTML (comme pour 99,9% des pages web au monde);
- pour test.php, le navigateur ne reconnait pas l'extension (du PHP peut produire un peu n'importe quoi, ou bien comme ici ne pas être exécuté...), et inspecte donc le contenu... où il trouve une déclaration XML... donc il suppose un type MIME "text/xml", voire "application/xhtml+xml" s'il repère aussi le Doctype, et utilise donc le parser XML.

Il s'avère que l'élément BODY est un élément «magique» en HTML: si on applique un fond à BODY, il s'affiche sur tout le canvas (l'espace du navigateur où est dessiné le site), et pas uniquement sur la hauteur de BODY. Par contre, quand la page est considérée comme du XML, ces propriétés magiques n'existent plus.

Voilà, il me semble, le fin mot de l'histoire. Mais les indices sont minces, donc cette déduction est peut-être erronée. Smiley cligne