User Tools

Site Tools


css:equal-height-columns

Create Columns with the same height

That's super useful when the content inside the columns is fluid, and also we want to put it in a different background for each column.

We have different options.

HTML Table

<table id="actual-table">
        <tr>
                <td>
                        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
                </td>
                <td>
                        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
                </td>
                <td>
                        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
                </td>
                <td>
                        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
                </td>
                <td>
                        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
                </td>
        </tr>
</table>
</code html>
 
<code css>
#actual-table { border-collapse: collapse; }
#actual-table td {
        width: 20%;
        padding: 10px;
        vertical-align: top;
}
#actual-table td:nth-child(even) {
        background: #ccc;
}
#actual-table td:nth-child(odd) {
        background: #eee;
}

CSS Table

<div id="css-table">
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
</div>
#css-table {
        display: table;
}
#css-table .col {
        display: table-cell;
        width: 25%;
        padding: 10px;
}
#css-table .col:nth-child(even) {
        background: #ccc;
}
#css-table .col:nth-child(odd) {
        background: #eee;
}

Wrapper background

Make a wrapper background with an image vertical repeating the illusion of a nth-column div. Similarly to the project made by Nejo: Llibre d'estils de la CCMA.

Margin and padding trick

<div id="one-true" class="group">
        <div class="col"><h3>I am listed first in source order.</h3><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
</div>
#one-true { overflow: hidden; }
#one-true .col {
        width: 27%;
        padding: 30px 3.15% 0;
        float: left;
        margin-bottom: -99999px;
        padding-bottom: 99999px;
}
#one-true .col:nth-child(1) { margin-left: 33.3%; background: #ccc; }
#one-true .col:nth-child(2) { margin-left: -66.3%; background: #eee; }
#one-true .col:nth-child(3) { left: 0; background: #eee; }
#one-true p { margin-bottom: 30px; } /* Bottom padding on col is busy */

CSS Gradients

.five-columns { 
 
        background-image: -moz-linear-gradient(
                left, 
 
                #eee,
                #eee 20%,
                #ccc 20%,
                #ccc 40%,
                #eee 40%,
                #eee 60%,
                #ccc 60%,
                #ccc 80%,
                #eee 80%,
                #eee 100%
        );
 
        background-image: -webkit-gradient(
                linear,
                left top,
                right top,
 
                color-stop(0, #eee),
                color-stop(20%, #eee),
                color-stop(20%, #ccc),
                color-stop(40%, #ccc),
                color-stop(40%, #eee),
                color-stop(60%, #eee),
                color-stop(60%, #ccc),
                color-stop(80%, #ccc),
                color-stop(80%, #eee),
                color-stop(100%, #eee)
        );   
 
}
<div class="five-columns group">
 
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p></div>
        <div class="col"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p></div>
 
</div>
css/equal-height-columns.txt · Last modified: 2010/10/30 16:55 by nejo