28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

J'ai des problèmes pour aligner mes DIV, je galère depuis une bonne journée dessus :

je voudrais faire

DIV1 5% (contient un menu déroulant horizontal)
DIV2 90%
DIV3 5%

le tout est dans un body qui fait 790px (je n'arrive pas à faire 100% de l'écran) et 1024px de width

Je voudrais aussi si possible selon le contenu étendre le DIV2 pour que le body fasse plus de 100%

mon DIV2 servira aux includes de mes autres pages.

Je ne sais pas si je peux envoyer des fichiers sur le forum alors celui qui pourra m'aider aura les fichiers par mails

merci à tous
Salut,

Le mieux serait une page en ligne, ça incitera plus de monde à se pencher sur ton problème, avec un meilleur taux de réussite. Smiley cligne
Et ça sera bien plus parlant que tes explications claires pour toi mais pas pour les autres. Smiley murf
Salut,

Je rejoint un peu Mikachu, car j'ai un peu de mal à comprendre ce que tu veux...

tes DIV tu veux les aligner verticalement ou horizontalement?
La largeur de ta page est fixée à 1024px. C'est là d'où vient problème:
La somme de la largeur de toutes des DIV de ton menu fait exactement 1024px. Si la fenêtre du navigateur fait moins de 1024px de large, les DIV "en trop" seront rapatriés à la ligne suivante.

La solution à mon sens serait de diminuer la largeur des DIV du menu pour atteindre une largeur de page plus proche de 900px.
Administrateur
Bonjour,

960 est divisible par tout plein de nombres ce qui a ses avantages mais sinon 980 à 1000px passe (1004px à l'extrême limite, de mémoire et d'après de vieux tests que j'avais réalisé ?)
Modifié par Felipe (01 Oct 2009 - 19:38)
Je n'ai pas de problème de largeur mais de hauteur.

Je veux que les DIV soit les uns en dessous les autres .

Et que le corps du message soit extensible en hauteur et que le pied de page soit toujours en dessous
Bon, on tourne un peu en rond là...

Si j'essaie de bien comprendre en prenant ta page http://gerc.free.fr/GERC_NG/index.php

Tu as dans ton body 3 espaces: Le body (avec l'image de fond), le menu (ul id='menuDeroulant'), le cadre principal dans lequel tu as ton contenu (div id="main-index"), et le footer (un div sans id).

Quand on navigue dans ton site le menu est plus ou moins au milieu du cadre principal => est-ce cela qui ne te va pas?

De plus, en regardant le code de la page, il y a pas mal d'annomalie ou de choses incomplètes qui n'arrange pas les choses:
1) Il manque une cohérence pour le tout qui faudrait organiser ton site autour de 3 ou 4 DIV avec des id du style: "entête", "contenu", "pied", "menu", etc...
Cela permettra de bien séparer chaque entité.
2) Pour ton footer tu utilise des DIV vide ce n'est pas normal et cela provoque des erreurs.
3) Je revient également au problème de largeur de ta page web (1024px), si quelqu'un comme moi qui navigue avec un PC muni d'un écran avec un résolution de 1024x768, le menu se retrouve sur 2 lignes... mieux vaux diminuer cette largeur afin de maximiser la compatibilité avec les ecrans
Oui c'est exactement ce que je voudrais faire

un div en-tete qui serait au dessus du menu
un div menu qui est à la bonne place
un div main-index qui devra etre extensible selon le contenu
un div pied de page qui devra se situe en dessous du div page qui contient les 3 div precedents (en-tete, menu-deroulant et main-index)

je n'arrive pas a fixer le positionnement de ces differents div
En fait c'est ultra simple c'est juste un propriété CSS de ton menu qui fait que cela ne marche pas: "position: absolute" cette propriété décorrèle complètement le menu du reste de toute la page. il faut la retirer!

Ensuite prends comme base une structure comme celle-ci:
<div id="conteneur">
<div id="header">
<!-- Ceci est mon haut de page -->
</div>
<div id="menu">
<!-- Ceci est mon menu horizontal -->
</div>
<div id="contenu">
<!-- Ceci est mon contenu principal -->
</div>
<div id="footer">
<!-- Ceci est mon pied de page -->
</div>
</div>

Pour le reste je ne peux que te renvoyer vers les milliards de tuto dispos sur le site d'alsacréation

http://www.alsacreations.com/article/lire/533-initiation-au-positionnement-en-css.html
http://www.alsacreations.com/article/lire/53-guide-de-survie-du-positionnement-css.html
http://www.alsacreations.com/tuto/lire/555-design-css-complet-5-etapes.html
Je viens de re-regarder cela.

Il faudrait dans un premier temps reprendre l'architecture de bas en définissant une fois pour toutes des balises principales, définir leur placement, les marges, ainsi que des couleur distinctes pour bien vérifier que le tout est cohérent.

Ensuite seulement tu pourra commencer à mettre du contenu dedans et à regarder l'implication du reste comme le menu.
Je viens de faire les modifications demandées

L'entete et le menu sont correctement placés

le main-index devrait etre extensible et etre au minimum jusqu'en bas du cadre blanc
le cadre blanc evoluerai aussi
le bottom devrait toujours etre sous le cadre blanc
J'ai vu ou tu a pris l'exemple pour ton menu déroulant.

J'ai téléchargé les truc en local, je te fait un truc propre.
C'est principalement un pb de marges non définies dans tes diverses DIV
A+
voilà du code, attention c'est long....


/* déclaration des bloc de base */

html, body{
   margin: 0px;
   padding: 0px;
   outline: 0px;
   color:#000000;
   background-color:#999999;
   height: 100%;
}

#page{
   background-color: #D3D3D3;
   width: 1024px;
   margin: 0 auto;
   border: 5px solid #FFFFFF;
}

#entete {
	margin: 0;
	width:1024px;
	height: 191px; /* hauteur de l'entête: 191px */
	background:#FF0000;
}

#menuDeroulant{
	margin: 0;
	padding: 0;
	height: 30px; /* on force la hauteur du menu à 30px */
	list-style-type: none;
	/* on place le menu juste en dessous de l'entête en position absolue   */
	/* afin que lorsque le menu se déroule il se face sur le contenu qu'il */
	/* y a en dessous */
	position: absolute;
	text-align:center;
	/* la position du menu est donnée par la hauteur de tous les éléments */
	/* qu'il y a au dessus: entête + Bordure soit 191px + 5px = 196px     */
	top: 196px; 
	z-index: 100;
	font-weight: bold;
	width: 1024px;
}

#main-index {
	width: 1024px;
	margin: 30px 0 0 0; /* pour laisser de la place au menu juste au dessus */
	/* on ajoute une marge égale à la hauteur du menu soit 30px */
	padding: 0;
	background:#0000FF;
}
#bottom {
	width:1024px;
	height: 20px;
	background:#00FF00;
}

/* gestion du menu à tiroirs */
#menuDeroulant li{
	float: left;
	width: 128px;
	margin: 0;
	padding: 0;
	border: 0;
	text-align:left;
}

#menuDeroulant li a{
	background: #000000;
	border-bottom: 1px solid #fff;
	color:#FFFFFF;
	letter-spacing:.1em;
	text-decoration: none;
	text-align:center;
	padding:6px 6px 8px;
	font-family: "Comic Sans MS",verdana,arial,"Trebuchet MS",Georgia, serif, sans-serif;
	font-size: 11px;
	font-weight: bold;
	display: block;
	margin: 0;
}

#menuDeroulant li a:hover {
	background:#000000;
	color:#999999;
 }

#menuDeroulant .sousMenu{
	display: none;
	list-style-type: none;
	margin: 0;
	padding: 0;
	border: 0;
}

#menuDeroulant .sousMenu li{
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
	width: 128px;
}
#menuDeroulant .sousMenu li a{
	background: #000000;
	color:#FFFFFF;
	line-height:10px;
	letter-spacing:.1em;
	text-decoration: none;
	text-align:center;
	padding:6px 6px 8px;
	font-family: "Comic Sans MS",verdana,arial,"Trebuchet MS",Georgia, serif, sans-serif;
	font-size: 11px;
	font-weight: bold;
	display: block;
	margin: 0;
	border-bottom: 1px solid #fff;
}

#menuDeroulant .sousMenu li a:hover{
	background:#000000;
	color:#999999;
}

#menuDeroulant li:hover > .sousMenu { display: block; }




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>Site Officiel du GERC</title>
		<link rel="SHORTCUT ICON" href="http://gerc.free.fr/favicon.ico">
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    
		<link rel="stylesheet" href="css.css" type="text/css" /> <!-- Appel de la feuille de style (css) -->
	</head>
	
	<body>	
		<div id="page">					<!-- definie la zone de la page -->
			<div id="entete">
			</div>
			<!--<img src="99_ressources/images/logos/gerc.jpg"> -->
			
			<ul id='menuDeroulant'>
				<li><a href="index.php?page=p1">Calendrier</a></li>
				<li><a href="index.php?page=p2"><label class='rouge'>Communications</label></a></li>
				<li><a href="#">Le Club</a>
					<ul class="sousMenu">
						<li><a href='index.php?page=p3'>Accès</a></li>
						<li><a href='index.php?page=p4&photo=f1'>Nos structures</a></li>
						<li><a href='index.php?page=p6'>Horaires</a></li>	
						<li><a href='index.php?page=p7'>Inscriptions</a></li>
						<li><a href='index.php?page=p8'>Le CA</a></li>
						<li><a href='index.php?page=p9'>Programmes</a></li>
					</ul>
				</li>
				<li><a href="index.php?page=p10">Les sorties</a>
					<ul class="sousMenu">
						<li><a href='index.php?page=p11'>Organisation</a></li>
						<li><a href='index.php?page=p12'>Les topos</a></li>
						<li><a href='index.php?page=p13'>Carte des sites</a></li>
					</ul>
				</li>
				<li><a href="index.php?page=p14">The Forum</a></li>
				<li><a href="#">Divers</a>
					<ul class="sousMenu">
						<li><a href="index.php?page=p15">Conseils d'Alex</a></li>
						<li><a href="index.php?page=p16">Les liens</a></li>
						<li><a href="index.php?page=p17">Compétitions</a></li>
					</ul>
				</li>
				<li><a href='index.php?page=p18'>Bar'O Gerc</a>
					<ul class="sousMenu">
						<li><a href='index.php?page=p19'>Explications</a></li>
						<li><a href='index.php?page=p20&limit=10'>Top Ten</a></li>
						<li><a href='index.php?page=p20'>Classement</a></li>
						<li><a href='index.php?page=p24'>Inscription</a></li>
					</ul>
				</li>	
				<li><a href='index.php?page=p27'>Connexion</a></li>			
			</ul> <!-- menu -->

			<div id="main-index">		<!-- definie la zone de contenu -->
				Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed eget ante ac quam tempor rhoncus. Mauris dolor. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed ipsum massa, ultricies a, fringilla a, blandit vitae, leo. Suspendisse potenti. Maecenas euismod nulla at purus. In vitae libero in est hendrerit vehicula. Praesent convallis nisi sit amet arcu. Sed mauris dui, pellentesque et, luctus quis, tincidunt ac, ante. Proin a lorem nec massa consequat porttitor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque ut odio id massa vestibulum imperdiet. Etiam elementum mauris nec odio. Vivamus a velit in magna rhoncus consectetuer. Suspendisse potenti. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras iaculis ipsum rhoncus dolor. Nunc lobortis, nibh ac viverra semper, nibh enim bibendum metus, vel pellentesque nulla erat dignissim risus.
				Aliquam porttitor rutrum neque. Quisque pellentesque facilisis ante. Maecenas tempor tortor eu diam dapibus varius. In ac eros a elit dapibus vestibulum. Suspendisse luctus, tortor ac interdum tincidunt, magna leo molestie dui, at lobortis pede sapien nec urna. Integer et neque. Aenean massa tortor, pharetra ut, vehicula vel, sagittis iaculis, eros. Proin at magna ac orci posuere tempor. Sed non nunc. Aenean non nibh quis nibh scelerisque adipiscing. Curabitur hendrerit dui quis est. Integer ac neque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed nonummy nibh sit amet eros. Nam imperdiet gravida mauris. Phasellus congue enim a augue. Proin faucibus imperdiet arcu.
			</div> <!-- fin main -->

			<div id="bottom">
				<div align="center">© 2009-2010 <a href='index.php'>GERC</a> - Tous droits réservés - Webmaster : Jérémy GATEFAIT</div>
			</div> <!-- fin bottom -->
		</div> <!-- fin page -->
	</body>
</html>




et voici un lien pour le footer en bas de page:
http://www.paperblog.fr/1368069/fixer-en-bas-de-page-un-footer-avec-les-css/
Modifié par mamax (03 Oct 2009 - 00:12)
Merci beaucoup pour cette réponse je n'ai pas eu le temps de regarder ce week end.

Il me reste un dernier problème à régler, j'aimerais que la zone bleue soit au minimum aussi haute que la page

je ne sais pas si c'est possible

merci de votre aide en tout cas