J'ai trouvé, par hasard, il n´y a pas si longtemps un comportement étrange. Il concerne l´image d´arrière-plan que l'on place dans le bas de la page, via les CSS. D´après ce que je conclus, FF, Opera et les autres n´ont pas la même définition de la hauteur de body que IE.
Ce n´est pas facile à expliquer, alors, hop, un exemple :
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>Background Bottom Test 1</title>
<style type="text/css">
body {
background: url(http://nayi.free.fr/design/v3/bas.jpg) no-repeat bottom left;
margin: 0px;
}
</style>
</head>
<body>
</body>
</html>
|
Testez ce code avec Firefox et IE
Je suppose que vous aurez constaté que IE s´en sort très bien, et que FF n´affiche strictement rien
Je pense que l´explication est que Firefox n´applique pas par défaut une hauteur de page totale (de 100%). Faisons un autre test :
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>Background Bottom Test 2</title>
<style type="text/css">
body {
background: url(http://nayi.free.fr/design/v3/bas.jpg) no-repeat bottom left;
margin: 0px;
}
</style>
</head>
<body>
<p>La vie est un long fleuve de merde que l’on traverse à bouche ouverte !</p>
</body>
</html>
|
Ben voilà, ça confirme

Firefox dit que la hauteur du body est égale à la hauteur du contenu. Chiant hein ?

(non, moi j'aime bien, ça me permet de faire des tutos

)
Une solution pourrait être de dire au navigateur que la page fait 100% de haut. Comme ceci :
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>Background Bottom Test 3</title>
<style type="text/css">
html { height: 100%; }
body {
background: url(http://nayi.free.fr/design/v3/bas.jpg) no-repeat bottom left;
margin: 0px;
}
</style>
</head>
<body>
<p>La vie est un long fleuve de merde que l’on traverse à bouche ouverte !</p>
</body>
</html>
|
OK. C´est bon. Mais ça ne va pas durer.
Que se passe t-il si le contenu est plus long que la hauteur de l´écran ?
Ben voilà, regardez ici. C´est le même code que ci-dessus, mais avec un beau
lorem ipsum :
http://nayi.free.fr/dev/xhtml-css/BackgroundBottom_4.html
Essayez de scroller la page. C´est embêtant. L´arrière-plan se situe bien dans le bas de la fenêtre navigateur, mais pas dans le bas de la page

Du coté d´IE, ça va toujours !
Le truc, c´est de mettre le contenu dans un
div. C´est à ce
div que nous allons appliquer l´image d´arrière-plan. Pour que l´image reste dans le bas, je vais appliquer un
min-height egal à 100% :
Code : CSS1
2
3
4
5
6
7 | body {
margin: 0px;
}
#all {
background: url(http://nayi.free.fr/design/v3/bas.jpg) no-repeat bottom left;
min-height: 100%;
}
|
Bien évidemment, rien ne va plus sous IE, car IE6 ne reconnait pas la propriété min-height.
Bon, je vais vous épargner les autres étapes, et vous donner le code final :
Code : CSS 1
2
3
4
5
6
7
8
9
10
11 | body {
margin: 0px;
background: none !important;
background: url(http://nayi.free.fr/design/v3/bas.jpg) no-repeat bottom left;
}
#all {
position: absolute;
background: url(http://nayi.free.fr/design/v3/bas.jpg) no-repeat bottom left !important;
background: none;
min-height: 100%;
}
|
On définit l´arrière-plan pour IE dans le
body. Dans
#all, on le fait pour Firefox. J´utilise des !important pour assigner les bonnes propriétés aux bons navigateurs
