Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to position inside flex-box?

Tags:

css

I am using flex box and want to align button to the bottom.

I am using position absolute and bottom: 0, but browser is ignoring it.

<ul class="box">
   <li><div>this has <br> more <br> <button>one</button></div></li>
   <li><div>this has <br> more <br> content <br> <button>one</button></div></li>    
   <li>d<div><button>one</button></div></li>
</ul>


ul {
    /* basic styling */
    width: 100%;
    height: 100px;
    border: 1px solid #555;

    /* flexbox setup */
    display: -webkit-box;
    -webkit-box-orient: horizontal;

    display: -moz-box;
    -moz-box-orient: horizontal;

    display: box;
    box-orient: horizontal;
}

.box > li {
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    box-flex: 1;
    margin: 0 1px;
    padding-bottom: 20px;
    border-bottom: 20px solid red;
    position: relative;
}
button {
    position: absolute;   
    bottom: 0;

}
/* our colors */
.box > li:nth-child(1){ background : #FCC; }
.box > li:nth-child(2){ background : #CFC; }
.box > li:nth-child(3){ background : #CCF; }

I can use float and not use flex-box, but I want to see if there is a solution for this using flex-box.

demo here: http://jsfiddle.net/NJAAa/

like image 376
dean Avatar asked Jul 21 '11 16:07

dean


People also ask

How do you position a flex end?

flex-end : lines packed to the end of the container. center : lines packed to the center of the container. space-between : lines evenly distributed; the first line is at the start of the container while the last one is at the end. space-around : lines evenly distributed with equal space between them.

How do I align my Flex container to the right?

When justify-content is set to “flex-end”, it instantly shifts all the flex-items to the end of the flex-container along the main-axis, i.e flex items get right aligned. It is different from the above-used method in terms of direction only as in this, flex-items will expand from left to right only.

Can I use position absolute with Flex?

If you position a flex item absolutely, it no longer participates in the flex layout. This means any flex properties on the item become moot. You can remove them if you like. The box alignment properties still apply to the flex item even if it is absolutely positioned, which means using align-self will have an effect.


1 Answers

Working WebKit version: http://jsfiddle.net/LLtmE/

In short: you need to put your text context in a separate div; make each li a flexbox and set box-orient to vertical. And remove all that absolute/relative positioning - it's no longer necessary.

like image 167
Matthew Avatar answered Oct 15 '22 02:10

Matthew