Pied de page

Eléphant du PHP | 158 Messages

28 mars 2006, 11:50

Bonjour tout le monde,

J'aimerai faire un pied de page pour mon site et que celui ci se place toujours en bas de l'ecran (même quand le contenu de la page est plus petit que la fenêtre) sans pour autant venir se placer au dessus du contenu de ma page si la fenetre est redimmensionnée.

Je ne sais pas en quel langage (CSS, javascript ??) il faut utiliser.

Je prend toutes les idées alors n'hésitez pas :)

Merci d'avance.
°°°Darkbibou°°°

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 mars 2006, 11:51

Pas besoin de Javascript, le CSS suffit.

Eléphant du PHP | 158 Messages

28 mars 2006, 11:57

Pourrait tu m'indiquer des exemples permettant de réaliser ce que j'aimerai faire ?
°°°Darkbibou°°°

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 mars 2006, 12:23

Alors, de tête...
tu devrais déjà pouvoir commencer avec un truc comme ça:
#pied {clear:both ; position:fixed; bottom-margin:0px ; }
mais ça ne doit pas suffire...

Eléphant du PHP | 312 Messages

28 mars 2006, 16:54

bottom:0px;
et pas bottom-margin (ou margin-bottom).

Note (edit 1):
clear:both;
position:fixed;
bottom:0px;

fait que le pied de page est toujours collé en bas de l'écran (et pas en bas de la page).
Autrement dit on voit en permanence le pied de page qui se "déplace" sur la page.

Note (edit 2) :
avec "position:relative;" le pied de page se trouve en bas de la page (et pas de l'écran) cette fois-ci.

Avec "position:absolute;", si la page est trop grande, le pied de page se retrouve au milieu en "suspend".
Modifié en dernier par Hermès le 28 mars 2006, 16:58, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

28 mars 2006, 16:56

:oops:

Me suis un peu couché tard hier soir...

Eléphant du PHP | 312 Messages

28 mars 2006, 17:18

Je viens de faire quelques tests (j'ai toujours galéré pour mettre en place un pied de page) :

Code : Tout sélectionner

html body { margin:0; padding:0; height:100%; } div#content { height:auto; display:block; min-height:100%; } div#footer { clear:both; position:relative; bottom:20px; }
Il faut que le fichier soit formé de la façon suivante :

Code : Tout sélectionner

<html> <body> <div id='content'> Le contenu de ma page </div> <div id='footer'> Mon pied de page </div> </body> </html>
La valeur a mettre dans "bottom" dépend de la hauteur du pied de page (ici 20 pixels). Si on met "bottom:0px", ça pose un problème pour les pages ayant une hauteur plus petite que l'écran (la page fait alors la taille de l'écran + la hauteur du footer, ce qui affiche l'ascenseur de défilement, pas terrible quoi).

J'ai essayé de faire passer le style de div#content dans body ou html mais ça n'a pas marché. Si quelqu'un a une solution sans passer par ce div, je suis preneur...

Eléphant du PHP | 158 Messages

29 mars 2006, 08:37

Merci je vais essayer tout ca :)
°°°Darkbibou°°°

Eléphant du PHP | 158 Messages

29 mars 2006, 09:31

J'ai fait des test et cela ne fonctionne pas: mon pied de page se retrouve au milieu de l'ecran, supperposé a mon texte. Le problème vient peut être de mon code, le voici:
<?php

// Ouverture de la session utilisateur:
session_start();

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">



	<!-- Haut de page -->
	<head>
	
		<!-- METATAGs -->
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		
		<!-- CSS -->
		<link rel="stylesheet" type="text/css" href="./CSS/stylesheet_menu.css" />
		
		<!-- Titre -->
		<title>TriAnnot_Consultation</title>

	</head>
	<!-- Fin Haut de page -->
	
	
	
	<!-- Corps de page -->
	<body>
	
		
				
		<div id='content'>
				
		<!------------------------------------>
		<!-- Premier "Bloc": Entête et Menu -->
		<!------------------------------------>
		
			<?
			  include('entete.html');  // Nous appelons l'entete du site
			?>
		
		<!-- Fin du premier Bloc -->
		
		<!------------------------------------------>
		<!-- Deuxième "Bloc": Affichage Dynamique -->
		<!------------------------------------------>
		
		<table border="0" height="100%" style="margin-left: auto; margin-right: auto; position:inherit">
		 
			<tr>
					
				 <td width="85%" style="text-align:center">

					<?php
			
						/*********************************************************************************/
						/* Le bloc de code php ci-dessous est utilisé ici afin de sécuriser le site web: */
						/* Seul un nombre limité de page peut ainsi être affiché.                        */
						/* Une URL incorrecte renvoit à l'acceuil du site                                */
						/*********************************************************************************/
			
						// Liste des pages autorisées
			 			$pageOK = array('nb_critere' => 'nb_critere.php',
										 'criteria'  => 'selection_critere.php',
										 'col_tri_1' => 'traitement1.php',
										 'col_tri_2' => 'traitement2.php',
										 'col_tri_3' => 'traitement3.php',
										 'res_tri' => 'resultat_triannot.php',
										 'res_gene' => 'resultat_genefarm.php',
										 'acceuil' => 'default.html',
										 'tutorial' => 'tutorial.html',
										 'logout' => 'logout.php');
			
			 		 	// La page appartient t'elle à la liste des pages autorisées ?? 
			  
						if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
							
							include($pageOK[$_GET['page']]);   // Pages principales
						
						}else{
						
							include('default.html');  // Page par défaut ( Se charge à la place d'une page non autorisées )
							
						}
			
					?>
					
				</td>
				
			</tr>
			
		</table>		
		<!-- Fin du deuxième Bloc -->

		</div>

		<div id='footer'>test Pied de page</div>

	</body>
	<!-- Corps de page -->
	
	
</html>
Et la partie de css pouvant intervenir sur ce code est celle donné par Hermès:

Code : Tout sélectionner

html body { margin:0; padding:0; height:100%; } div#content { height:auto; display:block; min-height:100%; } div#footer { clear:both; position:relative; bottom:0px; }
Voyez vous le problème ?
°°°Darkbibou°°°

Eléphant du PHP | 312 Messages

29 mars 2006, 09:42

Après quelques essais, ça fonctionne en supprimant ta ligne
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Eléphant du PHP | 158 Messages

29 mars 2006, 09:48

Quel doctype dois je utiliser alors ?

Je vais tester si avec les pages includes ca marche en enlevant le doctype
°°°Darkbibou°°°

Eléphant du PHP | 312 Messages

29 mars 2006, 09:57

Aucune idée, je peux pas dire que je maitrise les notions de doctype...

Eléphant du PHP | 158 Messages

29 mars 2006, 10:01

Apres un test rapide (pas trop long de mettre une ligne en commentaire :P) je remarque que j'ai bien le pied de page placé correctement mais tout le reste de mon interface ce met a ne plus fonctionner correctement:

Mon corps de page se retrouve placé loin vers le bas avec un grand blanc avant lui et avant le pied de page. Mon menu horizontal en css n'affiche plus ses sous menu, etc...

Je vais doner ici le code de la page d'acceuil qui est est include dans le corps de page apres l'entete comme exemple:
<table border="1" width="100%" style="margin-left: auto; margin-right: auto;">

	<tr><td colspan="100%"><font class="titre_page">Welcome on TriAnnot Consultation Tools</font></td></tr>
	
	<tr>
		<td style="height: 40pt" colspan="100%"></td>
	</tr>
	
	<tr>
		<td width="13%">&nbsp;</td>
		<td width="74%" style="font-size:16px; "><b>This easy and friendly interface, based on a multi criteria research tools (species, chromosomes, BAC ID, Genes), allows rapid links to the TriAnnot GBrowse viewer and/or the GeneFarm database, as well as NCBI-GenBank, EBI-EMBL and SwissProt.</b></td>
		<td width="13%">&nbsp;</td>
	</tr>
	
	<tr>
		<td style="height: 30pt" colspan="100%"></td>
	</tr>
	
	<tr>
		<td width="13%">&nbsp;</td>
		<td width="74%" style="font-size:16px; "><b>For example you may have a rapid access to a list of genes belonging to a specific species/chromosome/BAC; or all the BAC containing a gene family, or all the BAC available on a specific chromosome species; and so one. The research process is intuitive and user-friendly.</b></td>
		<td width="13%">&nbsp;</td>
	</tr>
	
	<tr>
		<td style="height: 30pt" colspan="100%"></td>
	</tr>
	
	<tr>
		<td width="13%">&nbsp;</td>
		<td width="74%" style="font-size:16px; "><b>Click <a href="?page=tutorial">here</a> to access to the tutorial and FAQ</b></td>
		<td width="13%">&nbsp;</td>
	</tr>
	
</table>
Le problème peut'il venir du fait que j'insere une table dans une autre ?
°°°Darkbibou°°°

Mammouth du PHP | 19672 Messages

29 mars 2006, 10:10

Le DOCTYPE indique selon quel standard sont codées les lignes de la page. Selon qu'on utilise une version transitional ou Strict, certaines balises ou certains attributs dans certaines balises seront autorisés, tolérés ou carrément interdits.

Le DOCTYPE fait appel à une DTD (Document Type Definition) qui est intégrée dans le navigateur, si elle ne l'est pas, elle est chargée à l'adresse indiquée dans la balise DOCTYPE.

En enlevant la ligne DOCTYPE, tu auras alors une interprétation selon le standard HTML4 la plus laxiste qui soit.

Ton problème de positionnement relatif : pose toi la question : relatif par rapport à quoi ? Réponse : par rapport à l'élément précédent. Dans ton cas, l'élément précédent du bloc #footer, c'est non pas body mais #content.

Essaye donc de le mettre en position absolute et dans ce cas, le positionnement se fera par rapport à la fenêtre et ton pied de page sera bien collé à 20px du bord inférieur de la fenêtre. Proposition en XHTML 1.0 Strict :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1" ?> <!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" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" /> <title>Positionnement d'un pied de page</title> <meta http-equiv="Content-language" content="FR-fr" xml:lang="fr" dir="ltr" /> <style type="text/css"> /* <![CDATA[ */ html body { margin:0; padding:0; height:100%; } div#content { height:auto; display:block; min-height:100%; } div#footer { clear:both; position: absolute; bottom:20px; } /* ]]> */ </style> </head> <body> <div id="content"> Le contenu de ma page </div> <div id="footer"> Mon pied de page </div> </body> </html>
Note importante : en XHTML, les valeurs d'attributs doivent être entre guillemets et non entre apostrophes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 158 Messages

29 mars 2006, 10:28

Quand j'essaye de tester en remplacant le haut de ma page par ton code easy php me sort une erreur sur la ligne :

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1" ?>
<?php

// Ouverture de la session utilisateur:
session_start();

?>

<?xml version="1.0" encoding="iso-8859-1" ?>
<!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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>TriAnnot_Consultation</title>
<meta http-equiv="Content-language" content="FR-fr" xml:lang="fr" dir="ltr" />
<style type="text/css">
/* <![CDATA[ */
html body {
   margin:0;
   padding:0;
   height:100%;
}

div#content {
   height:auto;
   display:block;
   min-height:100%;
}

div#footer {
   clear:both;
   position: absolute;
   bottom:20px;
}
/* ]]> */
</style>
</head>
A quoi est ce du ? a quoi sert cette ligne et celle de <![CDATA[ ? Pourquoi mettre deux balise meta http equiv ?

Merci d'avance
Modifié en dernier par Darkbibou le 29 mars 2006, 10:50, modifié 1 fois.
°°°Darkbibou°°°