mlibre mlibre - 3 months ago 8
CSS Question

float does not work in a flex container

I want to position text (foo link) in right of the footer element.

I need footer display to remain

flex
.

But when I set it to
flex
,
float:right
for span doesn't work anymore.



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





https://jsfiddle.net/dhsgvxdx/

Answer

The float property is ignored in a flex container.

From the flexbox specification:

3. Flex Containers: the flex and inline-flex display values

A flex container establishes a new flex formatting context for its contents. This is the same as establishing a block formatting context, except that flex layout is used instead of block layout.

For example, floats do not intrude into the flex container, and the flex container’s margins do not collapse with the margins of its contents.

float and clear do not create floating or clearance of flex item, and do not take it out-of-flow.

Instead, just use flex properties:

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

If you have more items in the footer, and need other alignment options, then here's a guide:

Comments