un bloc qui s'arrete à 120px du bas de la page ?

Dom83

Habitué
Je vous propose de me suivre dans mon raisonnement, pas à pas, et de me dire où je me trompe svp.

Je prend le code de l'exemple du lien que m'a donné martien :
[cpp]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>

<title>Exemple 2 : Positionner un footer avec CSS - étape 2</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
font: 12px/1.5 verdana, arial, helvetica, sans-serif;
}
#container {
position: relative;
min-height: 100%;
}
#content {
padding: 10px;
background-color: #6caad9;
padding-bottom: 48px;
}
#footer {
position: absolute;
bottom: 0;
padding: 10px;
background-color: #0066b2;
width: 75%;
}
#footer h1 {
color: #fff;
padding-bottom: 0;
}
h1, p {
margin: 0;
padding-bottom: 1em;
}
h1 {
font-size: 12px;
line-height: 1.5em;
}
-->
</style></head>

<body>
<div id="container">
<div id="content">
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
</div>
<div id="footer">
<h1>Footer</h1>
</div>
</div>
</body></html>[/cpp]

Je répete le contenu de "content" plusieurs fois, pour que cela soit plus grand que la fenetre.

Je m'aperçois que le pied de page suit le flux de la page et n'est donc plus visible, à moins bien-sur que l'on baisse avec l'ascenseur. Mais comme moi je veux qu'il soit tout le temps visible, je limite la hauteur de "container" en ajoutant " height: 100%;" et "overflow:hidden;" à son style.

Mon pied de page est maintenant fixé en bas de la fenetre. Mais il n'y a plus d'ascenseur, et il m'en faut un pour voir la totalité du contenu de "Content".

Puisque c'est le contenu de "Content" qui doit défiler et non celui de "Container", j'ajoute "overflow: auto;" et "height: 100%;" au style du bloc "Content".

J'obtiens alors le code suivant, qui me semble suffisant pour obtenir ce que je souhaite :
[cpp]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>

<title>Exemple 2 : Positionner un footer avec CSS - étape 2</title><meta

http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
font: 12px/1.5 verdana, arial, helvetica, sans-serif;
overflow:hidden;
}
#container {
position: relative;
min-height: 100%;
height: 100%;
overflow:hidden;
}
#content {
padding: 10px;
background-color: #6caad9;
padding-bottom: 48px;
overflow: auto;
height: 100%;
}
#footer {
position: absolute;
bottom: 0;
padding: 10px;
background-color: #0066b2;
width: 75%;
}
#footer h1 {
color: #fff;
padding-bottom: 0;
}
h1, p {
margin: 0;
padding-bottom: 1em;
}
h1 {
font-size: 12px;
line-height: 1.5em;
}
-->
</style></head>

<body>
<div id="container">
<div id="content">
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
<h1>Content</h1>
<p>Redimensionnez votre fenêtre pour observer comment se comporte votre

pied de page 100% CSS.</p>
<p>Lorem
ipsum dolor sit amet, consectetuer adipiscing elit. Cras porttitor. Ut
nonummy vestibulum arcu. Nulla eros eros, mattis et, dictum quis,
convallis vel, mauris. Ut sed mauris vel metus pretium pretium.
Curabitur tristique sem id justo. Nunc sit amet felis. Duis luctus
pharetra urna. Sed enim arcu, cursus a, posuere sed, sollicitudin in,
justo. Pellentesque enim lacus, egestas ut, elementum eu, molestie vel,
urna. Integer quam. Phasellus tempor. Sed commodo porttitor justo.
Vestibulum rhoncus lacinia pede. Aliquam lectus velit, auctor a,
fermentum a, accumsan et, neque.</p>
</div>
<div id="footer">
<h1>Footer</h1>
</div>
</div>
</body></html>[/cpp]

Mais ça ne fonctionne pas.

Dans les deux navigateurs, le bloc "content" est trop grand, et descends lègerement en dessous de la taille de la fenetre, alors que moi je veux qu'il s'arrete avant le bas de la fenetre. Que fait "Content" de son "padding-bottom: 48px;" ?

Les blocs "content" et "footer" se supperposent, alors qu'ils ne devraient pas.

Dans Firefox, je n'ai qu'un ascenseur vertical : celui du bloc "content". C'est ce que je voulais ! Mais dans Internet Explorer, je me retrouve avec deux ascenseurs verticaux... Celui de "Content" est là, c'est bien, mais celui de la page n'a rien à faire là puisque aucun bloc ne peut dépasser de la page (leur taille étant fixée à 100% de la fenetre). Donc j'ajoute "overflow:hidden;" au style de "body", mais ça ne change rien.

Je désespère un peu... :pfff:

Vous qui avez bien plus d'expérience que moi, voyez-vous où se trouve mon erreur ?
 

dartyduck

Grand Meuble Suprême
#content : tu lui a mis height:100% plus un padding-bottom:48px alors il est à 100% + 48px de haut. Tu n'as pas besoin de donner une hauteur à content, vu que tu en donnes une à container. Content prendra sa hauteur en fonction de son contenu, et grandira tout seul, puis l'overflow apparaitra.
 

Dom83

Habitué
J'ai retiré "height:100%" mais dans ce cas ce serait l'overflow de "Container" qui serait utilisé, puisque la hauteur de "Content" n'est plus limitée. Mais j'ai mis l'overflow de "Container" en "hidden" sinon le pied de page bougerait aussi. Je veux que mon pied de page soit fixé en bas de la page, donc seul "Contener" doit avoir un overflow.

plus un padding-bottom:48px alors il est à 100% + 48px de haut.
Je croyais que ça allait dans l'autre sens. Je lui ai donné une valeur négative et il ne descend plus en dessous, mais il ne s'arrete toujours pas à 48px du bas de la page.

As-tu une idée pour faire disparaitre la scrolling bar inutile de Internet Explorer ? C'est bizarre, ça ne le fait pas avec mon ancien site qui est en html, ni quand je mets cetta page en html. Serait-ce un bug de IE avec le xhtml ?
 

dartyduck

Grand Meuble Suprême
essaie de remplacer overflow:hidden; par overflow:none;
 

dartyduck

Grand Meuble Suprême
je sais plus là. moi meme je rencontree un pb sur mon site sous IE6... j'essaierai de regarder ton pb demain, je serai moins fatigué.
 

Dom83

Habitué
Je viens de m'apercevoir de quelque-chose de très étrange... :ouch:

Dans le code que j'ai repris de l'example, le style est inclus dans la page. Moi je préfère le mettre dans un fichier css, comme ça il sert à toutes les autres pages. Mais dès que je déplace les lignes de style dans un fichier .css, et que j'ajoute ma ligne pour appeler ce fichier css, le pied de page n'est plus fixé dans Firefox.... Tout le reste continu de fonctionner, mais ça, ça bug... Je remet les lignes de style dans le code de la page, et je retire la ligne pour appeler le fichier css, et ça marche à nouveau !
Je n'y comprend rien... :pt1cable: :cry:
Quelqu'un a du lancer un sort vaudoo à mon site, je ne vois que ça...
 

dartyduck

Grand Meuble Suprême
bon alors pour commencer, laisse ton css hors du html, dans un fichier à part, c'est nettement mieux.
C'est bien ce que tu as fait là, je vien sd'aller voir. Juste ton panda dépasse de qq pixels sur la droite... t'es arrivé au résultat escompté ?
 

Dom83

Habitué
Non, je n'ai toujours pas réussi à faire s'arreter mon bloc à 120px du bas de la fenetre. Mais j'ai eu une brillante idée pour tricher : mettre un petit png contenant un dégradé de transparence en background de mon bloc "BlocBas". Ainsi, au lieu de s'arreter à 120px du bas, mon bloc de contenu disparait progressivement. :)
Ca ne fonctionne pas encore avec IE car les png en background sont plus compliqués à lui faire avaler qu'en simple image, mais je vais surement trouver.
edit : J'ai trouvé ! Au lieu de le mettre en background, j'ai créé un bloc "Degrade" supperposé derriere "BlocBas", avec dedans mon png auquel j'ai donné 3000px comme largeur (il ne fait que 2px sinon). Ca fonctionne dans IE maintenant.

Par contre je n'ai pas encore de solution pour le double ascenseur vertical. Je pense que c'est un bug de IE avec le xhtml, car en html il ne le fait pas.
 

dartyduck

Grand Meuble Suprême
on le voit ton bloc car il commence pas tout à gauche. Tu devrais le faire prendre TOUTE la largeur de la page. On voit qu'il un y a une image dégradée...
Vous devez être connecté pour voir les images.
 

Dom83

Habitué
Voilà c'est corrigé.

Je remarque sur ta capture d'écran qu'une de mes images n'a pas été chargée... Chez moi aussi j'ai souvent des images de mon site qui ne se chargent pas la première fois, puis qui se chargent normalement lorsqu'on presse F5. C'est dû à quoi ? Mes images sont-elles trop lourdes ? Ou mal insérées ?
 

dartyduck

Grand Meuble Suprême
nan, j'ai le meme probleme. peut-etre du à free...
 

marsien

Grand Maître
idem, et uniquement sur Free aussi... Un problème de traitement des pages trop lourdes ? [:spamafote]
 

dartyduck

Grand Meuble Suprême
trop lourdes ? avec des vignettes qui font 14ko max chacunes ? c'est abusé !
 

marsien

Grand Maître
Elle fait quelle taille ta page ? Je pense que c'est les accès disques qui posent problème aux serveurs de Free. Entre les pages php avec includes, les css, les javascripts, les documents multimédias, les photos, tu as un nombre conséquent d'accès disque pour récupérer tous ces fichiers. Et là, ça coince. Je me trompe pet-être, mais c'est ce que j'en ai conclu de mon expérience.
 

Dom83

Habitué
Y'a t-il un code d'erreur pour les pages qui ne se sont pas chargées entièrement ? Si oui, on pourrait mettre dans le .htaccess une ligne qui fait recharger la page automatiquement s'il manque quelque-chose. Ca éviterait aux visiteurs de presser F5.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 178
Messages
6 718 942
Membres
1 586 479
Dernier membre
dupezthomas
Partager cette page
Haut