58 votes

Comment centrer horizontalement un élément flottant de largeur variable ?

Comment centrer horizontalement un élément flottant de largeur variable ?

Edit : J'ai déjà fait fonctionner ceci en utilisant un contenant div pour l'élément flottant et en spécifiant un width pour le conteneur (puis utiliser margin: 0 auto; pour le conteneur). Je voulais juste savoir si cela pouvait se faire sans utiliser un élément contenant ou, du moins, sans avoir à spécifier un élément width pour l'élément contenant.

6 votes

Si tu veux le centrer, pourquoi est-il flottant ?

1 votes

C'est une longue histoire, je l'évoque pour d'autres raisons.

1 votes

4voto

random Points 5411

Disons que vous avez un DIV que vous voulez centrer horizontalement :

 <div id="foo">Lorem ipsum</div>

Dans le CSS, vous le styliserez de la manière suivante :

#foo
{
  margin:0 auto; 
  width:30%;
}

Ce qui signifie que vous avez une marge supérieure et inférieure de zéro pixel, et à gauche ou à droite, vous calculez automatiquement la quantité nécessaire pour être à égalité.

La largeur n'a pas vraiment d'importance, du moment qu'elle est présente et qu'elle n'est pas de 100 %. Sinon, vous ne fixeriez pas le centre sur quoi que ce soit.

Mais si vous le faites flotter, à gauche ou à droite, les jeux sont faits, car il sort du flux normal des éléments de la page et le paramètre de marge automatique ne fonctionne pas.

1 votes

Le seul problème ici est que vous devez définir explicitement la largeur ; width: auto; ne fonctionne pas (AFAIK).

0 votes

Correct, vous devez définir quelque chose comme largeur. Mais la question portait sur la largeur variable, j'espère que ce n'est pas un autre mot pour auto et qu'il s'agit plutôt d'une valeur fluctuante ou d'une quantité relative, comme les em ou les %.

0 votes

Merci pour votre réponse, en fait je n'ai pas de problème avec le centrage des éléments, ce que j'essaie de faire est de centrer un "élément flottant". Je sais que ce n'est pas possible en CSS, mais j'espérais que quelqu'un aurait une astuce qui pourrait fonctionner pour cela. J'ai même essayé d'utiliser un tableau, mais cela n'a pas fonctionné non plus. Malheureusement, dans mon scénario, il n'y a aucun moyen de faire en sorte que l'élément ne soit pas flottant, j'en ai besoin pour des raisons spécifiques.

3voto

Kai Points 191

Ne pouvez-vous pas simplement utiliser display: inline block y align a center ?

Exemple .

0 votes

inline-block bonne solution ! au moins vous avez obtenu +1 après 7 ans ;)

2voto

John Catterfeld Points 6614

Je viens de trouver ceci utile article ce qui a résolu le problème exact que j'avais avec le centrage. divs d'inconnu width .

0voto

lior ben yosef Points 106

Pour l'élément 50

width: 50%;
display: block;
float: right;
margin-right: 25%;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X