28220 sujets

CSS et mise en forme, CSS3

Bonjour tout le monde.

Tout d'abord, un grand bravo à ce site qui est très bien pour débuter.

Je suis débutant donc ne soyez pas trop sur mon dos Smiley cligne

Alors voilà,
j'ai suivi ce tutorial

Mais un gros problème persiste, je n'arrive pas à centrer le site (pour les différentes résolution de l'écran (800*600,1024*....)

J'ai bien suivi ce tutorial mais rien n'y fait Smiley decu

Pouvez-vous m'aider ?

Je tiens à signaler que j'ai effectué une recherche appronfondi sur ce sujet, j'ai bien trouvé plusieurs posts mais ne correspondent pas à mon problème Smiley sweatdrop C'est la seule chose qui me gêne pour pouvoir continuer mon projet de site.

Je vous remercie d'avance pour votre aide Smiley confused
Bonjour,

Merci pour le lien, mais malheureusement je n'y arrive pas Smiley confused

Voici le contenu de mon fichier .css :

body
{
margin:0;
padding:0;
font-family: verdana, arial;
font-size: 12px;
}
.head1
{
background-image: url('design/head1.jpg');
width: 770px;
height: 91px;
}
.head2
{
background-image: url('design/head2.jpg');
width: 770px;
height: 36px;
}
.logo
{
margin-right: 10px;
margin-top: 3px;
border: 0;
}
.gauche
{
position: absolute;
left:0;
background-image: url('design/menu.jpg');
width: 181px;
height: 337px;
}
.centre
{
margin-left: 181px;
width: 586px;
padding-top: 10px;
}
.menu {
margin-top: 30px;
width: 160px;
border: 1px solid #060C6F;
background-color: #B7D3F0;
font-family: verdana, arial;
font-size: 110%;
text-align: center;
}

h1
{
font-size: 140%;
text-align: right;
}
h2
{
font-size: 100%;
text-align: right;
}
.menuhaut
{
float: right;
margin-right: 10px;
margin-top: 10px;
}
.menuhaut a {
font-size: 16px;
font-weight: bold;
color: #060C6F;
text-decoration: none;
margin-left: 20px; /* espacement entre chaque sous-menu */
}

ul,li 
{
list-style-type: none;
margin: 0;
padding:0;
line-height: 30px;
}


Et le contenu de mon fichier .html :

<html>
<head>
<title>mon site</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>

<body><div id="global">
<div class="head1">

</div>
<div class="head2">
<div class="menuhaut">
  <a href="...">Accueil</a>

  <a href="...">Produits</a>
  <a href="...">Catalogue</a>
  <a href="...">Forum</a>
  <a href="...">Contacts</a>
</div>
</div>
	
<div class="gauche">
		<ul class="menu">
     	<li>Menu 1</li>
      <li>Menu 2</li>
      <li>Menu 3</li>
      <li>Menu 4</li>
 	    <li>Menu 5</li>
	<li>Menu6</li>

		</ul>
	</div>
	
	<div class="centre">
	
  <h1>Titre de mon site</h1>
	
  <h2>Voici à quoi va ressembler le site</h2>
	<p>contenu de la page !</p>

	</div></div>

</body>
</html>


Cela pourra peut être vous aider, merci de m'aider Smiley sweatdrop
Bonjour,

Dans le code css que nous montre, il ne manquerait pas:

#global{
propriété:valeur;
propriété:valeur;
etc.
}


C'est dommage car c'est justement ce qui devrait te permettre de centrer Smiley cligne
Oups je m'excuse, j'ai pris le mauvais fichier.

body
{
margin:0;
padding:0;
font-family: verdana, arial;
font-size: 12px;
margin: 0;
text-align: center;
}
.global {
position: relative;
margin-left: auto;
margin-right: auto;
width: ...;
text-align: left;
}
.head1
{
background-image: url('design/head1.jpg');
width: 770px;
height: 91px;
}
.head2
{
background-image: url('design/head2.jpg');
width: 770px;
height: 36px;
}
.logo
{
margin-right: 10px;
margin-top: 3px;
border: 0;
}
.gauche
{
position: absolute;
left:0;
background-image: url('design/menu.jpg');
width: 181px;
height: 337px;
}
.centre
{
margin-left: 181px;
width: 586px;
padding-top: 10px;
}
.menu {
margin-top: 100px;
width: 160px;
border: 1px solid #060C6F;
background-color: #B7D3F0;
font-family: verdana, arial;
font-size: 110%;
text-align: center;
}

h1
{
font-size: 140%;
text-align: right;
}
h2
{
font-size: 100%;
text-align: right;
}
.menuhaut
{
float: right;
margin-right: 10px;
margin-top: 10px;
}
.menuhaut a {
font-size: 16px;
font-weight: bold;
color: #060C6F;
text-decoration: none;
margin-left: 20px; /* espacement entre chaque sous-menu */
}

ul,li 
{
list-style-type: none;
margin: 0;
padding:0;
line-height: 30px;
}


Le header est centré mais seulement sous IE ! Pas avec Mozilla...

Par ailleur, le menu lui reste à sa gauche, sans être centré donc Smiley biggol
Dans ton code html tu appliques globlal comme étant un id et dans ta feuille style de style tu le déclares comme une classe. Il faut que tu modifies ta déclaration de style pour global:

#global{
propriété:valeur;
propriété:valeur;
etc.
}


Pour le centrage lui-même avec #global tu mélanges les deux solutions ce centrage. Il faut enlever le positionnenent relatif:


#global{
margin: 0 auto;/*0 correspond aux marges haute et basse, auto aux marges droite et gauche*/
width: 90%;/*si tu souhaites adapté la largeur à toutes les résolution*/
text-align:left;/*rétablit l'alignement classique*/
}

Modifié par Igor (07 May 2005 - 10:38)
Ce n'est pas tout à fait centré, le menu lui reste à sa gauche Smiley sweatdrop

http://erip.free.fr/essai/tuto.htm

Par contre, les modifications que tu m'as fait faire fonctionnent sous Mozilla également.

Comment puis-je faire pour parfaitement centré le tout au milieu de la fenêtre du navigateur quand on est en 800*600, 1024*..... etc. ?
Apparement, quelques soit la résolution, il y a toujours un problème de disposition sur la page, donc je crois que je l'ai dans le baba ou existe-t-il un moyen d'y remédier ?

Merci pour votre aide Smiley decu
non, pas forcément : si tu fixes la largeur à 750 px par exemple ... Tu peux centrer le tout en centrant le calque conteneur global, non ?
Ton menu horizontal n'a pas besoin de flotter, de même ton autre menu pourrait lui être en float au lieu d'être en absolu, et la partie de ton centre simplement muni d'une marge au moins égale à ton menu de gauche, sans lui donner de dimension qui n'est pas utile.
Regardes les gabarits dans les tutoriels certains reprennent l'utilisation des flottants et peuvent être adaptés à ce que tu souhaites réaliser:
http://css.alsacreations.com/modeles/modele15.htm
http://css.alsacreations.com/modeles/modele16.htm
Modifié par Igor (07 May 2005 - 12:05)
Reprenons au début.
Ton site semble se composer d'un entête de page, d'une navigation horizontale, d'une navigation verticale en regard du contenu principal. Je rajouterais personnellement un pied de page. Le tout étant centré dans les navigateurs quelques que soient leur résolution grâce à un conteneur englobant tous les autres éléments.
Au total on dénombre plusieurs éléments unique dans cette page que sont identifés dans le html et déclarés dans la feuille de style:

#global{}/*centrage*/
#header{}/*entête de la page*/
ul#menutop{}/*navigation horizontale avec une liste*/
#navigation{}/*navigation verticale*/
#centre{}/*contenu*/
#footer{}/*infos de copyright par exemple*/


<div id="global">

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

<ul id="menutop">
<li><a href="...">Accueil</a></li>
<li><a href="...">Produits</a></li>
<li><a href="...">Catalogue</a></li>
<li><a href="...">Forum</a></li>
<li><a href="...">Contacts</a></li>
</ul>

<div id="navigation">
<ul>
<li>Menu 1</li>
<li>Menu 2</li>
<li>Menu 3</li>
<li>Menu 4</li>
<li>Menu 5</li>
<li>Menu6</li>
</ul></div>

<div id="centre">
 <h2>Voici à quoi va ressembler le site</h2>
<p>contenu de la page !</p>
</div>

<div id="footer"><p>copyright</p></div>

</div>


Pour le centrage, utilisons les marges automatiques comme indiquées dans le tutoriel. Notes que pour que cela fonctionne avec IE il faut rajouter à l'élément body une instruction de centrage du texte et rétablir l'alignement classique de global. Pour centrer quelque que soit la résolution on peut utiliser une largeur en pourcentage:

body{text-align:center;}

#global{
width:90%;
margin:0 auto;
background-color:#eee;
text-align:left;}

Pour le header: rien à faire à part lui donner une hauteur (height).

La navigation horizontale: on peut utiliser une liste que l'on présente horizontalement grâce à css (display:inline, d'autres possibilités existe voire Faire un menu de navigation en CSS):

ul#menutop{
height:25px;
background-color:#3f3f3f;
text-align:right;}

ul#menutop li{
display:inline;/*les éléments de liste li sont affichés en ligne*/
list-style-type:none;/*les puces ont disparues*/
padding:0 5px;/*un peu d'air à droite et à gauche}


La navigation verticale: une nouvelle fois une liste à laquelle on donne une largeur et que l'on fait flotter à gauche (propriété float), tu insères ta liste dans cette div définie par:

#navigation{
width:160px;
float:left;
background-color:#ccc;}


Ton contenu principal doit occupé le reste de l'espace disponible moins la largeur de #navigation. Une marge externe gauche d'au moins sa largeur suffit:
#centre{
margin-left:160px;}


Le pied de page que je rajoute est muni d'une propriété css clear adaptée à l'utilisation des flottants. l'explication est dans la faq:

#footer{
clear:both;
background-color:#000;
color:#fff;}


C'est à peu près tout pour l'organisation globale de la page avec les flottants et le centrage. D'autres possibilités existent avec divers modes de postionnement. Ils sont dans les gabarits de Raphaël.
Pour te sentir à l'aise avec les différents types de positionnement il est indispensable de bien assimiler les différents principes comme ils sont présentés sur Openweb:
Initiation au positionnement CSS : 1.flux et position relative
Initiation au positionnement CSS : 2.position float
Initiation au positionnement CSS : 3. position absolue et fixe
avec ce condensé sur Alsacréations: Comprendre le positionnement des balises en CSS.

Voilà une possibilité. Bon courage.