28172 sujets

CSS et mise en forme, CSS3

Pages :
Bonjour,

Je cherche à centrer verticalement une image contenue dans un DIV.

Je connais bien la technique qu'il faut employer seulement j'ai un soucis lorsque mon DIV ne contient que l'image.

<div id="contenu">
      <div class="flottante" ><img alt="I1" src="I1.png" />I1</div>
	  <div class="flottante" ><img alt="I2" src="I2.png" />I2</div>
	  <div class="flottante" ><img alt="I3" src="I3.png" /></div>
      <div class="spacer">&nbsp;</div>
</div>


#contenu {
	margin: auto;
	margin-left: 184px;
	padding-top: 5px;
	height: 100%;
	text-align: center;
}

.flottante {
  background-color: #FFFFFF;
  margin: 2px;
  margin-bottom: 0px;
  /* float: left; */
  width: 180px;
  height: 80px;
  line-height: 85px;
  text-align: center;
  border-bottom-style: solid;
  border-bottom-width: 3px;
  color: #656565;
  font-weight: bold;
  display: inline-block;
  *display: inline;
  zoom: 1;
}


Pas de soucis pour I1 et I2 les DIV contiennent du texte donc les images sont bien centrés de manière verticale.

Par contre I3 non, l'image reste en haut.
Je suis obligé de mettre &nbsp; pour que cela fonctionne.

Y a t'il un moyen de se passer de &nbsp; ?
Pareille pour mon DIV spacer.

Merci.
Bonjour,

C'est justement d'actualité suite à l'article de Raphaël sur table-cell.

Il suffit d'assigner au conteneur:

display: table-cell;
vertical-align: middle;


Bonne soirée.
Cela ne semble pas me donner le résultat escompté.
Car je veux que les blocs puissent passer automatiquement à la ligne.
Ce qui ne fonctionne pas avec la dimension table Smiley decu

A moins que j'ai raté un truc ?
cerede2000 a écrit :
Car je veux que les blocs puissent passer automatiquement à la ligne.


Alors display:table-row...
Hum non plus Smiley decu

En faite je veux que mes div soient comme ceci :

****** ****** ****** ****** ******
*Div1* *Div2* *Div3* *Div4* *Div5*
****** ****** ****** ****** ******

Et si la Div6 ne tiens pas sur la ligne elle passe sur la ligne suivante et se centre sous la Div3 (qui est au milieu).
Modifié par cerede2000 (02 Jan 2013 - 10:36)
Oui cela reproduit bien mon problème.

Si j'applique un width: 800px; sur le div contenu les flottant s'écrase mais en passe pas à la ligne Smiley decu
Justement elle ne sont pas de taille fixe.

Et certaines possède du texte à côté.

Actuellement avec le display: inline-block; c'est nikel.
C'est juste le soucis de &nbsp; que voudrait bien éviter pour les images qui n'ont pas de texte à coté.
Il vient des divs qui possèdent la classe CSS flottante.

Actuellement, ceux qui n'ont pas de texte ont un &nbsp; que je voudrait enlever (le but étant qu'il n'y ai rien du tout)
a écrit :
Quand je teste tout mon HTML + tout mon CSS dans CodePen cela ne semble pas se reproduire

Et isoler le problème en remontant toute la structure.

Bien faire les vérif de base: doctype etc...
Modifié par rodolpheb (02 Jan 2013 - 15:38)
Pourquoi ne pas créer 2 blocs contenant pour le premier les 4 premières images et pour le deuxième les 2 dernières. Avec table-cell ça reste simple.
Pages :