I have a container div
with display: table
and three inner divs that have display: table-cell
.
The two outer table-cells have a fixed width, the inner table-cell has width:100%
. So it scales with the size of the browser.
I also have a footer div that I'm trying to place at the bottom of the middle cell, with a width: 100%
. But it expands way over the width of the middle table-cell.
How can this issue be fixed?
Example: https://jsfiddle.net/9opnx9r8/
HTML
html, body { height: 100%; } .cell { display: table-cell; border: 1px solid red; } .cell1, .cell3 { min-width: 150px; } .cell2 { width: 100%; } .text { border: 1px solid green; position: absolute; left: inherit; bottom: 0; width: 100%; height: 70px; }
<div style="display:table; min-height: 100%;"> <div class="cell cell1"> <h1>C1</h1> </div> <div class="cell cell2"> <h1>C2</h1> <ul> <li>List</li> <li>must</li> <li>stay</li> <li>top</li> </ul> <div class="text">FOOTER TEXT HERE</div> </div> <div class="cell cell3"> <h1>C3</h1> </div> </div>
The containing block for absolutely positioned elements is the nearest positioned ancestor.
If there is no positioned ancestor, the containing block is the viewport.
Therefore, add position: relative
to the element that should be the containing block for the footer.
html,body { height: 100%; } .cell { display: table-cell; border: 1px solid red; } .cell1, .cell3 { min-width: 150px; } .cell2 { width: 100%; position: relative; /* NEW */ } .text { border: 1px solid green; position: absolute; left: inherit; bottom:0; width: 100%; height: 70px; }
<div style="display:table; min-height: 100%;"> <div class="cell cell1"> <h1>C1</h1> </div> <div class="cell cell2"> <h1>C2</h1> <ul> <li>List</li> <li>must</li> <li>stay</li> <li>top</li> </ul> <div class="text">FOOTER TEXT HERE</div> </div> <div class="cell cell3"> <h1>C3</h1> </div> </div>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.