Bonjour à tous,

J'ai fait toutes les recherches possibles, j'ai coloré mes boites, mis des border tout comme dit la FAQ, mais je ne trouve pas de solution à mon problème!!

J'ai une page avec un footer, un header et un content.

Dans ce content j'ai 3 colonnes. Parfois c'est celle du milieu la plus grande parfois celle de droite.

Donc je ne peux pas en placer une des deux en absolute sinon elle sort du flux et le footer ne se place plus tout en bas.
Je n'arrive pas non plus à bien les placer les deux en relative car sinon celle de droite prend pour référence celle du milieu et donc se décale en fonction du contenu.
Voici le code:


<div id="header">header</div>

<div id="content" style="background-color:red;">
     <div class="wrapper">
<!-- 1. Menu Gauche -->
          <div id="content_menu" style="background: green;">
		<ul>
			<li>Menu1</li>
                        <li>Menu2</li>
                       <li>Menu1</li>
		</ul>
	</div>

<!-- 2. Contenu -->
	<div id="content_main" style="background: green;">
              Contenu qui peut être long ou court.
	</div>

<!-- 3. Contenu supplémentaire -->
	<div id="content_sub">
		Contenu qui peut être plus long ou plus court.
	</div>
     </div>
</div>

<div id="site_info">Footer</div>


Et le CSS

div#header {
	position : relative;
	height : 111px;
}
div#content{
	position: relative;
	width: 100%;
	min-height: 100%;
}
.wrapper{
	position: relative;
	width: 975px;
	margin: 0 auto;
	text-align: left;
}
div#content_menu{
	position : absolute;
	left: 0;
	top : 0;
	width: 181px;
	min-height : 100%;
	background : #fff url(images/template/background_menu.gif) repeat-x top left;
	padding: 0 10px;
}

div#content_main{
	position : relative;
	top : 0;
	left: 210px;
	width: 400px;
	min-height : 100%;
	margin-bottom : 20px;
	padding : 25px 20px 5px 12px;
	background : #fff url(images/template/background_menu.gif) repeat-x top left;
}

div#content_sub{
	position : relative;
	left: 645px;
	top: -90px;
	width: 334px;
	background : #FFF url(images/template/background_contentSub.gif) no-repeat top left;
}
div#site_info {
	position : relative;
	display : block;
	bottom: 0;
	left: 0;
	width : 100%;
	height : 210px;
}


Quelqu'un pourrait m'aider? Je suis vraiment désespéré là!

Merci beaucoup
Bonjour,

L'utilisation que tu as faite du positionnement relatif est une bêtise à oublier dans la seconde qui suit. Voilà, c'est oublié, on peut maintenant faire du positionnement CSS. Smiley smile

http://css.alsacreations.com/Bases-et-indispensables/Comprendre-le-positionnement-des-balises-en-CSS
http://css.alsacreations.com/Faire-une-mise-en-page-sans-tableaux/design-trois-colonnes-positionnement-flottant

À lire aussi:
http://web.covertprestige.info/test/03-elements-flottants-et-element-parent-1.html

Bonne continuation.
copperfield a écrit :
de plus tu ne définis pas de hauteur pour ton content_sub alors que pour les deux autres déclarations tu l'as fait...

Dans les deux autres cas, c'est un min-height: 100% qui est utilisé, mais qui n'a aucune chance de fonctionner ici car div.wrapper n'a pas de hauteur fixe.

copperfield a écrit :
Regarde aussi ce lien:
http://www.code-web.org/post/2007/11/07/20-un-min-height-pour-tous-les-navigateurs

Je conseillerais plutôt de ne pas le regarder, car l'article en question dit un certain nombre de bêtises et propose de mauvaises solutions. Notamment:
- il ne distingue pas Internet Explorer 6 et Internet Explorer 7 (c'est pourtant capital pour la gestion de min-height, vu que le premier ne comprend pas du tout min-height et que le deuxième l'implémente correctement!);
- il propose un hack CSS qui fait mal aux yeux, et les hacks cépabien (voir la FAQ du forum à ce sujet).
Je n'ai pas défini des hauteurs de div car elles sont variable. Pour le min-height, je suis au courant, j'ai un fichier pour ie avec des height à 100%.

Le problème que j'ai c'est que j'ai utilisé cette méthode partout dans mon site et qu'il n'y a qu'une seule page où je suis confronté à ce problème. Donc refaire toute la structure pour ça...

De plus, je ne suis pas pour le positionnement des conteneurs en Float. Oui ça fonctionne, mais c'est le même principe que les tableau avant. On détourne quelque chose pour en faire autre chose que son utilisation première.
J'aime appeler un chat un chat.

Je vais lire les liens que m'a donné Florent. Je verrai si je trouve une solution là-dedans.
Gwenny a écrit :
De plus, je ne suis pas pour le positionnement des conteneurs en Float. Oui ça fonctionne, mais c'est le même principe que les tableau avant. On détourne quelque chose pour en faire autre chose que son utilisation première.
J'aime appeler un chat un chat.


Ben les css ça permet justement de changer le comportement des éléments sans modifier le code html, c'est fait pour quoi, je ne vois vraiment pas où est le mal. Smiley rolleyes
Modifié par Patidou (24 Sep 2008 - 16:03)
Bon, je vais peut être essayer de faire juste ma page problématique en float.

Petite question encore: Peut on mettre un positionnement relatif sur des float? Car ma 3ième colonne doit être décalée verticalement vers le haut par rapport aux deux autres.

Merci
Gwenny a écrit :
Peut on mettre un positionnement relatif sur des float?

Oui, pas de soucis en théorie. Attention toutefois à bien comprendre le comportement de ces propriétés, une marge verticale est peut-être plus adaptée, à voir selon le cas.