28173 sujets

CSS et mise en forme, CSS3

Voila je suis vraiment novice en XHTML/CSS (CSS surtout) et j'ai un soucis avec la mise en page.
Je désire obtenir une mise en page toute simple avec :
- header en haut
- Menu sur la gauche
- corps de page sur ce qu'il reste à droite (scrollable si le texte et trop important)
- pied de page en bas

Voici mon CSS


body {
margin: 0;
padding: 0;
text-align: center ;
font-family:"Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
background-color: #f0f4ff; 
}

div#conteneur {
	width: 750px ;
	margin: 0 auto ;
	text-align: left ;
	background-color: #C0D1EF;
	border: 2px solid #506388 ;
	}


div#header {
height: 100px;
margin: 0 auto ;
background-color: #C0D1EF;
}
#header h1 {
font: 20px "Trebuchet MS", helvetica, sans-serif ;
text-align : center;
}
#menu {
float: left;
width: 150px;
height: 200px;
margin-right: 5px;
background-color:#C4CBD1;
border: 1px solid #506388 ;
}
#frame {
float: right;
width:80% ;
height: 600px;
background-color:#fff;
overflow: auto;
border: 1px solid #506388 ;
}

#frame form {
background-color:#C0D1EF;
padding:10px;
width:400px;
margin-left : 100px;
margin-top: 180px;
border: 2px solid #506388 ;
}
#frame label {
font-family:"trebuchet ms",sans-serif;
font-weight:bold
}
#frame input {
border:1px solid black;
background-color:#F0F4FF;
font-family:"trebuchet ms",sans-serif;
color: #506388;
}
#footer {
height: 20px;
background-color: #C0D1EF;

}
p {
margin: 0 0 5px 0;
}
#menugauche {
list-style-type: none;
margin: 0;
padding:0;
}
#menugauche li {
margin-bottom: 5px;
}
#menugauche a {
margin: 0 2px;
color: #000000;
text-decoration: underline;
}
#menugauche a:hover {
text-decoration: none;
}


La page web associé :

<!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">

<head>
<title>Upload de fichiers</title>
<meta name="author" content="Pierre Vallet" />
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
<meta http-equiv="Content-Language" content="fr" />
<link rel="stylesheet" type="text/css" href="stylecss.css"/>

</head> 
<body>
<div id="conteneur">
<div id="header"><h1>Echange de fichiers simplifié</h1></div>

		<div id="menu"><p>Menu</p>
			
			<ul id="menugauche">
			<li><a href="">Menu 1</a></li>
			<li><a href="">Menu 2</a></li>
			<li><a href="">Menu 3</a></li>
			<li><a href="">Menu 4</a></li>

			</ul>
			
		</div>
		<div id="frame">
			<form enctype="multipart/form-data" name="envoiFichier" action="http://localhost:8080/transfertFichier/GestionFichier" method="POST">
			<p>
			<label>Choisissez le fichier à uploader en parcourant l'arborescence de votre disque local</label><br />
			<input type="file" name="fichier" />
			</p>
			<input type="hidden" name="action" value="uploaderFichier" />
			<p>
			<input type="submit" value="Envoyer" />
		</div>

	<div id="footer">Ceci est le bas de ma page web </div>
</div>
</body>
</html>


Le resultat : c'est nimporte quoi : exemple : sous FF le menu et la frame mange sur le header, le footer se place en dessou du header et non pas sous le reste ....
Modifié par K-Kai (17 May 2006 - 10:02)
Alors merci merci, j'ai un peu avancé, donc j'aimerais des critique sur mon CSS (trouvé sur le net et adapté quelques peu), il y a t'il des manières plus élégante d'obtenir la même chose

body {
background-color: #F0F4FF;
font-size: 11px;
font-family: Verdana, Arial, SunSans-Regular, Sans-Serif;
color:#564b47;
padding:0px;
margin:0px;
}
a {color: #506388;}
a:visited {color:#506388;}
a:hover {color: #506388;}
a:active { color:#506388;}

#banner h1 {
font-size: 20px;
color: #506388;

padding:5px 15px;
margin:0px }
h2 {
font-size:20px;
font-weight: normal;
padding: 5px 10px;
margin:0px;}


/* ----------container to center the layout---------- */
#container {
width: 750px;
padding:0px;
margin: 0px;
border : solid 2px #506388;
margin-left: auto;
margin-right: auto;
} 

/* ----------banner for logo-------------- */
#banner {
text-align: center;
height:100px;
background-color: #C0D1EF;
border-bottom : solid 2px #506388;
padding: 0px;
margin: 0px; }

#banner img {padding:10px 0px;} 

/* ----------outer and inner----------------- */
#outer{ 
border-left: solid 150px #C0D1EF;  /* color of the left column  */ 
background-color: #ffffff; /* color of the content column */
 } 

#inner{ margin:0px; width:100%; } /* The ie/pc pecularity */ 

/* --------------left navi------------- */
#left {
 width:150px; 
 height:160px;
 float:left; 
 position:relative; 
 margin-left:-150px; 
 margin-right:1px;
 border-bottom: solid 2px #506388;
 background-color : #C4CBD1;
 
 }

/* -----------------content--------------------- */
#content{ 
position: relative;
overflow: auto;
border-left : solid 2px #506388;
height: 450px;
margin: 0px; }

p{
padding: 5px 10px;
margin:0px; }

pre{
font-size: 12px;
padding: 5px 10px;
margin:0px;}

/*  ----------------footer---------------------- */ 
#footer {
clear:left;
height:25px;
padding:0px;
margin:0px;
text-align: right;
color: #C0D1EF;
background-color: #506388;
} 


Notamment pour le placement du menu à gauche ... (#outer,#inner,#left)

Deplus j'obtiens un léger décalage sous IE : le petit décalage de la bordure entre la zone de gauche et le contenu



upload/6171-pbIE.JPG
Modifié par K-Kai (19 May 2006 - 15:46)
La galerie de tuto est pleine de mises en pages simples, adaptables....
Et rien de remplace les heures passées à tester des choses et à comprendre le fonctionnement des blocs les uns par rapport aux autres sur des petites modifications... c'est ainsi qu'on apprend Smiley cligne
Ta css est assez propre dans l'ensemble, mais j'avoue que le bloc de 150px positionné en -150px me semble bof bof... Smiley rolleyes
salut


deux erreurs dans html

balise de fermeture du formulaire absente ainsi qu'une balise p.

pour le css

#container {
width: 750px;
padding:0px;
margin: 0px;
border : solid 2px #506388;
margin-left: auto;
margin-right: auto;
}


margin 0 px et margin-left et right en auto = pbs

pour opéra 5/6

overflow: auto;


il ne comprend pas cette instruction.mais on peux passer outre.

les définitions id des divs ne correspondent pas au html...

voilà un début de correction

body {
background-color: #F0F4FF;
font-size: 11px;
font-family: Verdana, Arial, SunSans-Regular, Sans-Serif;
color:#564b47;
text-align: center;
padding:0;
margin:0;
}
a {color: #506388; background-color: transparent;}
a:visited {color:#506388; background-color: transparent;}
a:hover {color: #506388; background-color: transparent;}
a:active { color:#506388; background-color: transparent;}

#banner h1 {
background-color: transparent;
font-size: 20px;
color: #506388;
padding:5px 15px;
margin:0;
}
h2 {
font-size:20px;
font-weight: normal;
padding: 5px 10px;
margin:0;
}


/* ----------container to center the layout---------- */
#conteneur {
width: 750px;
border : solid 2px #506388;
text-align: left;
padding:0;
margin: 0 auto;
/*margin-bottom: 0;
margin-left: auto;
margin-right: auto;*/
} 

/* ----------banner for logo-------------- */
#banner {
text-align: center;
height: 100px;
background-color: #C0D1EF;
border-bottom : solid 2px #506388;
padding: 0;
margin: 0; }

#banner img {padding: 10px 0;} 

/*
#outer{ 
border-left: solid 150px #C0D1EF; 
background-color: #ffffff;
 } 

#inner{ margin: 0; width: 100%; } The ie/pc pecularity */ 

/* --------------left navi------------- */
#menu {
 width:150px; 
/* height:160px;*/
 float:left; 
 /*position:relative;*/
 /*margin-left:-150px;*/
 margin-right:1px;
 border-bottom: solid 2px #506388;
 background-color : #C4CBD1;
 
 }

/* -----------------content--------------------- */
#frame{ 
float: right;
overflow: auto;
border-left : solid 2px #506388;
height: 450px;
margin: 0;
}

p{
padding: 5px 10px;
margin:0; 
}

pre{
font-size: 12px;
padding: 5px 10px;
margin:0;
}

/*  ----------------footer---------------------- */ 
#footer {
clear: both;
height:25px;
padding:0 5px 0 0;
margin:0;
text-align: right;
color: #C0D1EF;
background-color: #506388;
} 


pour html

<!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-FR">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
<meta http-equiv="Content-Language" content="fr-FR" />
<meta name="author" content="Pierre Vallet" />
<title>Upload de fichiers</title>
<link rel="stylesheet" type="text/css" href="stylecss.css" />

</head> 
<body>
<div id="conteneur">

<div id="header">
  <h1>Echange de fichiers simplifié</h1>
</div>

<div id="menu">
   <p>Menu</p>
<ul id="menugauche">
	<li><a href="">Menu 1</a></li>
	<li><a href="">Menu 2</a></li>
	<li><a href="">Menu 3</a></li>
	<li><a href="">Menu 4</a></li>
</ul>
</div>

<div id="frame">
<form enctype="multipart/form-data" name="envoiFichier" action="transfertFichier/GestionFichier" method="POST">
<p>
<label>Choisissez le fichier à uploader en parcourant l'arborescence de votre disque local</label><br />
<input type="file" name="fichier" />
</p>
<input type="hidden" name="action" value="uploaderFichier" /> <input type="submit" value="Envoyer" />	
</form>
</div>

<div id="footer">
Ceci est le bas de ma page web
</div>

</div>
</body>
</html>


il reste deux ou trois détails à régler, à toi de jouer.
Salut,

a écrit :
margin 0 px et margin-left et right en auto = pbs
Il n'y a pas vraiment de problèmes si on connaît le comportement, et qu'on sait que ça revient à écrire :
margin: 0 auto;
(Ce qui est plus élégant.)
il faut vraiment que je fasse attention au sens de mes interventions Smiley bawling

a écrit :
(Ce qui est plus élégant.)


a écrit :
y a t'il des manières plus élégante d'obtenir la même chose


donc, acte.idem pour les 0px.
merci merci c'est bien gentil cette correction

Et pour ce qui est du positionnement du menu a gauche, vous n'auriez pas plus elegant car je n'est trouvé que ca qui fonctionne mais cela doit bien être possible (oui c'est net) de n'utiliser que le div de la taille du menu de gauche, celle de l'espace central et de les placer en flottant etc ...
Mais je n'es pas réussi Smiley decu

Donc si vous avez des conseils, des explications sur les placements (même avec les tutos j'ai du mal avec le float, relative ....)