Well, an easy way is to set the 1st cell to width: 100% . This will make it fill as much as possible for the width of the parent table. Then, in the third cell, you place a 216px content 216px (for example, << 22>).
The table cell always try to respect its contents. Thus, the 2nd divisor will shrink in the middle, simply observing its own content. The third will respect its 216px content, and the 1st will fill the rest.
Working JsFiddleExample
<table> <tr> <td>1stContent</td> <td>2ndContent</td> <td> <div class="dv3rd"> 216px </div> </td> </tr> </table>
CSS
table { width: 776px; background: silver; } td:nth-child(1) { width: 100%; background: red; } td:nth-child(2) { background: green; } td:nth-child(3) { background: blue; } .dv3rd { width: 216px; }
However
In addition, you should not use tables for page layout. A simple replacement will work with css tables, where your divs can act as display: table and display: table-cell elements.
Here is the same example, but a div is used instead:
Working JsFiddleExample - No Tables
<div class="table"> <div> 1stContent </div> <div> 2ndContent </div> <div> <div class="dv3rd"> 216px </div> </div> </div>
CSS
.table { width: 776px; background: silver; display: table; } .table > div:nth-child(1) { display: table-cell; width: 100%; background: red; } .table > div:nth-child(2) { display: table-cell; background: green; } .table > div:nth-child(3) { display: table-cell; background: blue; } .dv3rd { width: 216px; }
source share