28173 sujets

CSS et mise en forme, CSS3

Bonjour

Je suis entrain de préparer un site pour une association importante.

Voici la maquette (grossièrement) : http://www.sylvie-rousseau.com/webmastering/images/maquette-du-site.jpg pour donner une idée de la structure de la page.

Je souhaite que deux blocs (le menu de navigation dans .gauche et le texte dans .droite) soient cote à cote et que les deux blocs soient dans un troisième bloc centré.

Pour centrer, j'ai déjà essayé la méthode enseignée par Raphaël dans l'un de mes sites persos et ça fonctionne : margin-left: auto; et margin-right: auto; (www.tranchant-rousseau.fr).

En revanche pour les blocs cote à cote dans le site associatif que je prépare actuellement, c'est la panique : soit le bloc de droite va sous celui de gauche, soit une partie du bloc de droite est à droite et une partie en-dessous Smiley eek
J'ai essayé la méthode également enseignée par Raphaël :
.gauche {
background-color: #09c;
width: 370px;
float: left;   
padding-left: 5px;  
     }
.droite {
width: 430px; 
padding-left: 20px; 
     }

et ça ne va pas du tout.

Il faut dire que je ne suis toujours pas douée avec le positionement css.

Je vous livre mon code :

xhtml------------------
<body>
<div id="centre">
  <div class="gauche">
    <img src="images/menu-af.gif" width="370" height="45" />
 <ul>
	<li>Qui sommes-nous </li>
	<li>Bureau et CA</li>
	<li>Statuts</li>
</ul>
  </div>
  <div class="droite"> 
<img src="images/bandeau.jpg" width="430" height="277" /> 
    <p>Praesent imperdiet lobortis pede. Praesent posuere pede vitae dui. Aenean 
      neque risus, condimentum vel, mattis at, fringilla vitae, metus. Morbi quam. 
      Vivamus convallis. In pretium consequat dolor. Sed lobortis velit sed quam. 
      Morbi tempus tellus at eros. Aliquam egestas, odio eu tincidunt vehicula, 
      lacus turpis iaculis lacus, vel porttitor lorem neque vitae pede. Nunc id 
      nulla vehicula lacus nonummy viverra. Nullam nibh ante, nonummy a, sollicitudin 
      dignissim, convallis bibendum, mi. Quisque sed sapien eu pede mollis faucibus. 
      Vestibulum erat mauris, accumsan in, venenatis eget, tincidunt nec, metus. 
      Sed nec tortor. Donec euismod sodales elit. Maecenas vestibulum, nisl eget 
      placerat varius, purus nunc consequat velit, nec volutpat lacus sem et odio.</p>
      </div>
</div>
</body>


css------------------
body {
 margin: 0; /* pour éviter les marges */
     text-align: center; /* pour corriger le bug de centrage IE */
	 background-color: #ffffff;
     color: #000000;
     font-family: Arial;
     font-size: 12px;
     }
#centre {
margin-left: auto;
     margin-right: auto;
     width: 800px;
     text-align: left; /* on rétablit l'alignement normal du texte */
}
.gauche {
background-color: #09c;
width: 370px;
float: left;   
padding-left: 5px;  
     }
.droite {
width: 430px; 
padding-left: 20px; 
     }


Que faire, s'il vous plait ? Infiniment merci !
Modifié par Florent V. (06 Feb 2008 - 23:11)
Bonjour,

Commençons par deux petites remarques:
1. Lorsque l'on poste du code sur le forum, il est d'usage d'utiliser les balises [ code] et [ /code] (sans espace après le crochet ouvret), et ce afin de renforcer la lisibilité du forum. Merci de corriger ton message pour en tenir compte.
2. Lorsque je lis «largeur totale de 800px», je ne peux pas m'empêcher de tiquer. La largeur canonique pour un design fixe compatible avec les écrans en 800x600 est 760px (et pas 780, 790 ou 800).

Maintenant, le fond du problème:
.gauche {
	float: left;
	width: 370px;
	padding-left: 5px;
}
.droite {
	width: 430px;
	padding-left: 20px;
}
Effectivement, ça ne va pas du tout.
Le premier bloc aura une largeur de 375px (width + padding-left). Le deuxième bloc aura une largeur de 450px (width + padding-left). Ce qui fait un total de 825px, pour un conteneur de 800px de large. Donc ça ne tient pas.

De plus, le premier bloc est flottant à gauche. Le comportement flottant fait qu'il repousse le texte, les images et les éléments de type en-ligne, mais pas les éléments de type bloc (il flotte par dessus le cas échéant). Et comme on n'a pas dit à div.droite de se placer à droite ou de laisser un espace suffisant à gauche, ben div.gauche va le recouvrir en bonne partie.

Comprendre le positionnement flottant:
http://web.covertprestige.info/test/07-colonnes-flottantes-et-place-dans-le-flux.html

Un tutoriel que l'on aura intérêt à lire et qui peut très bien s'adapter pour un conteneur en largeur fixe et deux colonnes au lieu de trois:
Un design fluide avec trois «colonnes», grâce au positionnement flottant

Voilà, bonne continuation. Smiley smile
Merci mille fois Florent !!

Je devais supprimer les padding et dire à ma div droite de flotter à droite.

C'est du vrai délire, cette histoire...

Mais bon, il faut absolument que je me désinhibe par rapport au positionnement css. Malheureusement j'ai raté la séance de formation de Paris web 2007 où Raphaël et Pascale proposaient un tuto sur la mise en page css.
Il faut absolument que je me trouve un webmaster xhtml/css-iste pour me tutorer.

Pour l'affichage du code dans un post de forum, je suis bien d'accord avec toi à ceci près que j'ai essayé soit en sélectionnant le code puis je clique sur code soit en cliquant sur code au début du code, ça fait rien de rien.

Eh oui là aussi je ne suis pas très douée Smiley confus mais je sais faire d'autres choses. Smiley smile

Ah oui je dois préciser : je suis une personne en situation de handicap psychique passionnée par le web, qui crée des sites normalement respectueux des standards et de l'accessibilité.

Whahouhh : tu as posté 10209 messages ! Mais quand est-ce que tu prends le temps de dormir ?

Je tiendrai compte de ta remarque concernant la largeur canonique des écrans, heureusement que la version du site pour février n'est que provisoire, la version définitive (sans doute à 3 colonnes) sera pour mars-avril.

Cordialement et encore merci.
Modifié par CyberMarietta (06 Feb 2008 - 22:50)
CyberMarietta a écrit :
C'est du vrai délire, cette histoire...

Non non, c'est parfaitement normal. Smiley cligne
Mais l'intégration web est un sujet technique avec un certain nombre de subtilités. Ça ne s'assimile pas en lisant un ou deux tutoriels et la moitié d'un livre. Smiley cligne

Heureusement, il existe nombre de ressources de qualité en ligne (cours, tutoriels...).

Pour l'affichage du code, j'ai rajouté les balises en question à la main, ça marche très bien aussi. Smiley smile

CyberMarietta a écrit :
Whahouhh : tu as posté 10209 messages ! Mais quand est-ce que tu prends le temps de dormir ?

Hmm... la nuit, en général.

CyberMarietta a écrit :
Je tiendrai compte de ta remarque concernant la largeur canonique des écrans

Ce n'est pas la largeur canonique de l'écran, mais celle du contenu qui peut être affiché sans barre de défilement horizontale inutile sur un écran en 800x600. Il faut tenir compte du fait que la fenêtre n'est pas toujours maximisée, tenir compte aussi de la barre de défilement, des bordures de la fenêtre s'il y en a, etc.

- Pour un écran en 800x600: pas de contenu au dessus de 760px de large;
- pour un écran en 1024x768: pas de contenu au dessus de 980px de large.

Ensuite, on peut bien sûr faire des choix de design:
- travailler avec un design fluide (et peut-être une largeur minimale à 750px par exemple, et une largeur maximale pourquoi pas);
- travailler avec une largeur fixe entre 850 et 980px parce que en dessous le contenu est trop étriqué (notamment si on a trois colonnes...), et tant pis pour les utilisateurs en 800x600 qui se font de plus en plus rares (8-10%?);
- travailler avec une largeur fixe compatible avec les écrans en 800x600 (donc 760px maximum);
- etc.