| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| |
| <head> |
| |
| <title>CSS Test: table-layout fixed - columns with percentage width and absolute 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="fixed-table-layout-023-ref.xht" /> |
| <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> |
| |
| <meta content="" name="flags" /> |
| <meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated, predicted, rendered." name="assert" /> |
| |
| <style type="text/css"><![CDATA[ |
| body |
| { |
| margin: 8px; |
| width: 640px; |
| } |
| |
| table, div {font: 1.25em/1 Ahem;} |
| |
| table |
| { |
| border: white solid; |
| border-width: 0px 11px; /* horizontal table border width is 22px total */ |
| border-collapse: separate; |
| border-spacing: 18px 4px; /* horizontal border-spacing width is 90px total */ |
| table-layout: fixed; |
| width: 80%; /* 640px mult by 80% == 512px */ |
| |
| /* |
| "With this (fast) algorithm, the horizontal layout of |
| the table does not depend on the contents of the cells; |
| it only depends on the table's width, the width of |
| the columns, and [table] borders or cell spacing." |
| |
| So, |
| |
| 512px : total table width |
| - |
| 90px : total horizontal border-spacing width |
| - |
| 22px : total horizontal border-spacing width |
| ======== |
| 400px : total to split among the 4 columns |
| */ |
| |
| } |
| |
| col#first |
| { |
| background-color: fuchsia; |
| width: 13%; |
| /* 400px multiplied by 13% = 52px */ |
| } |
| |
| col#second |
| { |
| background-color: olive; |
| width: 100px; |
| } |
| |
| col#third |
| { |
| background-color: orange; |
| width: 31%; |
| /* 400px multiplied by 31% = 124px */ |
| |
| /* |
| 400px - (52px + 100px + 124px) = 124px for last column |
| */ |
| } |
| |
| col#fourth {background-color: lime;} |
| |
| td {padding: 1px 10px;} |
| |
| td#first-cell {color: fuchsia;} |
| |
| td#second-cell {color: olive;} |
| |
| td#third-cell {color: orange;} |
| |
| td#fourth-cell {color: lime;} |
| |
| div {padding: 1px 0px;} |
| |
| div#reference1st |
| { |
| background-color: fuchsia; |
| color: fuchsia; |
| left: 29px; /* 11px border-left of table + 18px border-spacing == 29px */ |
| position: relative; |
| width: 52px; |
| } |
| |
| div#reference2nd |
| { |
| background-color: olive; |
| bottom: 1.1em; |
| color: olive; |
| left: 99px; |
| /* |
| 11px : border-left of table |
| + |
| 18px : 1st border-spacing |
| + |
| 52px : width of first column |
| + |
| 18px : 2nd border-spacing |
| ======= |
| 99px |
| */ |
| position: relative; |
| width: 100px; |
| } |
| |
| div#reference3rd |
| { |
| background-color: orange; |
| bottom: 2.2em; |
| color: orange; |
| left: 217px; |
| /* |
| 11px : border-left of table |
| + |
| 18px : 1st border-spacing |
| + |
| 52px : width of first column |
| + |
| 18px : 2nd border-spacing |
| + |
| 100px : width of second column |
| + |
| 18px : 3rd border-spacing |
| ======= |
| 217px |
| */ |
| position: relative; |
| width: 124px; |
| } |
| |
| div#reference4th |
| { |
| background-color: lime; |
| bottom: 3.3em; |
| color: lime; |
| left: 359px; |
| /* |
| 11px : border-left of table |
| + |
| 18px : 1st border-spacing |
| + |
| 52px : width of first column |
| + |
| 18px : 2nd border-spacing |
| + |
| 100px : width of second column |
| + |
| 18px : 3rd border-spacing |
| + |
| 124px : width of third column |
| + |
| 18px : 4th border-spacing |
| ======= |
| 359px |
| */ |
| position: relative; |
| width: 124px; |
| } |
| ]]></style> |
| |
| </head> |
| |
| <body> |
| |
| <p>Test passes if the colored (fuchsia, olive, orange and lime) stripes have respectively the same widths and the same horizontal positions.</p> |
| |
| <table> |
| |
| <col id="first"></col> |
| <col id="second"></col> |
| <col id="third"></col> |
| <col id="fourth"></col> |
| |
| <tr> |
| <td id="first-cell">1</td> |
| <td id="second-cell">2</td> |
| <td id="third-cell">3</td> |
| <td id="fourth-cell">4</td> |
| </tr> |
| |
| </table> |
| |
| <div id="reference1st">r</div> |
| |
| <div id="reference2nd">r</div> |
| |
| <div id="reference3rd">r</div> |
| |
| <div id="reference4th">r</div> |
| |
| </body> |
| </html> |