<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>CSS Test: table-layout fixed - columns with percentage width</title> <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/"> <link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout"> <link rel="match" href="reference/fixed-table-layout-017-ref.htm"> <meta content="" name="flags"> <meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated and predicted when in 'border-collapse: separate' model." name="assert"> <style type="text/css"> table, div {font: 1.25em/1 serif;} table { border: solid white; border-width: 0px 6px; border-collapse: separate; border-spacing: 2px 4px; table-layout: fixed; width: 422px; } col#test { background-color: orange; width: 40%; } td#third-cell {color: orange;} div, td {padding: 1px 0px;} div#reference { background-color: blue; color: blue; left: 172px; /* 3 horizontal border-spacing and the table border-left separate the start of table box and the start of 3rd column. The first 2 columns should each be 80px exactly since "Any remaining columns equally divide the remaining horizontal table space (minus [table] borders or cell spacing)." So: 6px : table border-left + 2px : 1st border-spacing + 80px : 1st column : (422 - 10 - 12) mult by (60% divided by 3) + 2px : 2nd border-spacing + 80px : 2nd column : (422 - 10 - 12) mult by (60% divided by 3) + 2px : 3rd border-spacing ========= 172px */ position: relative; width: 160px; /* 422px : total width of table - 12px : total width of horizontal borders of table - 10px : 5 times horizontal border-spacing ======== 400px mult by 40% ======== 160px */ } </style> </head> <body> <p>Test passes if the orange stripe is exactly as wide as the blue stripe and is horizontally positioned the same.</p> <table> <col> <col> <col id="test"> <col> <tr> <td></td> <td></td> <td id="third-cell">col</td> <td></td> </tr> </table> <div id="reference">ref</div> </body> </html>