71 votes

le flotteur ne fonctionne pas dans un conteneur flexible

Je veux positionner le texte (foo lien) à droite du pied de page de l'élément.

J'ai besoin d'un pied de page affichage de demeurer flex.

Mais quand je l'ai mis à l' flex, float:right pour une durée ne fonctionne plus.

<footer style="display: flex;">
     <span style="text-align: right;float: right;">
        <a>foo link</a>
     </span>
</footer>

https://jsfiddle.net/dhsgvxdx/

68voto

Michael_B Points 15556

L' float propriété est ignorée dans un conteneur flex.

À partir de la flexbox spécifications:

3. Conteneurs Flex: l' flex et inline-flexd'affichage les valeurs

Un conteneur flex établit un nouveau flex formatage contexte de son contenu. C'est le même que l'établissement d'un bloc de mise en forme de contexte, sauf que flex mise en page est utilisé à la place de la disposition en bloc.

Par exemple, les flotteurs ne pas s'immiscer dans le conteneur flex, et le flex conteneur des marges de ne pas s'effondrer avec les marges de sa contenu.

float et clear ne pas créer la variable ou de la clairance de flex point, et ne pas prendre de flux.

Au lieu de cela, il suffit d'utiliser les propriétés flex:

footer {
    display: flex;
    justify-content: flex-end;
}
<footer>
    <span>
       <a>foo link</a>
    </span>
</footer>

Si vous avez plus d'éléments dans le pied de page, et le besoin d'autres options d'alignement, puis ici sont deux guides:

60voto

D.Soderberg Points 340

Cela fonctionne si vous ajoutez margin-left: auto; comme je l'ai fait ici dans jsfiddle: https://jsfiddle.net/dhsgvxdx/3/

 <body>
    <footer style="display: flex;">
        <span style="text-align: right;float: right; margin-left: auto;">
            <a>foo link</a>
        </span>
    </footer>
</body>
 

6voto

alanbuchanan Points 1306

Si ce pied de page ne doit contenir qu'un élément aligné à droite, vous pouvez simplement appliquer justify-content: flex-end au conteneur flexible. De cette façon, vous n'avez pas besoin d'ajouter de styles à ses enfants.

 footer {
  display: flex;
  justify-content: flex-end;
}
 

Exemple de Codepen

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