tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

fixed-table-layout-003f04.xht (3475B)


      1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      2 
      3 <html xmlns="http://www.w3.org/1999/xhtml">
      4 
      5  <head>
      6 
      7   <title>CSS Test: table-layout: fixed - cell in the first row with specified width</title>
      8 
      9   <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
     10   <link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" />
     11   <link rel="bookmark" href="http://lists.w3.org/Archives/Public/www-style/2011Oct/0502.html" title="[css21] Section 17.5.2.1 should be clarified" />
     12   <link rel="match" href="fixed-table-layout-003f04-ref.xht" />
     13 
     14   <meta name="assert" content="A cell in the first row with specified non-auto 'width' sets the width for its column in the absence of a column element with specified non-auto width. This test checks the 'border-collapse: collapse' model with zero horizontal cell padding and with one non-zero horizontal cell border." />
     15 
     16   <style type="text/css"><![CDATA[
     17   div, table {font: 1.25em/1.2 serif;}
     18 
     19   table
     20   {
     21   border-collapse: collapse;
     22   table-layout: fixed;
     23   width: 300px;
     24   }
     25 
     26   td {padding: 0px;}
     27 
     28   td#tested-cell
     29   {
     30   background-color: blue;
     31   border-left: orange solid 0px;
     32   border-right: orange solid 120px;
     33   color: blue;
     34   width: 80px;
     35   }
     36 
     37   div#reference
     38   {
     39   background-color: black;
     40   color: black;
     41   margin-left: 80px;
     42 
     43   /*
     44 
     45   "
     46   In the fixed table layout algorithm, the width of each column is determined as follows:
     47 
     48   (...) a cell in the first row with a value other than 'auto' for the 'width' property determines the width for that column. (...)
     49     Any remaining columns equally divide the remaining horizontal table space (minus borders or cell spacing).
     50   "
     51   Section 17.5.2.1 Fixed table layout
     52   http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout
     53 
     54 
     55   Middle column width calculations
     56   --------------------------------
     57 
     58    80px : width of cell in the middle column
     59  +
     60    60px : half of border-right since such border must be split with cell in 3rd column
     61 
     62   =======
     63   140px : width of the middle column
     64 
     65 
     66   So,
     67       300px : table set width
     68     -
     69       140px : width of the middle column
     70       =======
     71       160px
     72 
     73       So, each of the 2 remaining columns must be
     74       half of such extra horizontal table space,
     75       which is 160px divided by 2 == 80px.
     76 
     77   1st column width calculations
     78   -----------------------------
     79 
     80     (solve) : width of cell in 1st column
     81     =======
     82      80px   : width of 1st column
     83 
     84   So, the width of the cell in first column must be exactly 80px.
     85 
     86 
     87   3rd column width calculations
     88   -----------------------------
     89 
     90     60px    : border-left of cell in 3rd column
     91   +
     92    (solve)  : width of cell in 3rd column
     93    ========
     94     80px    : width of 3rd column
     95 
     96    So, the width of the cell in 3rd column must be exactly 20px.
     97 
     98 
     99   Finally, the precise horizontal point where the border-right of cell
    100   in first column begins to be drawn, painted is:
    101 
    102     80px    : width of cell in 1st column
    103 
    104   Therefore the margin-left: 80px value of the div#reference.
    105 
    106   */
    107 
    108   width: 200px;
    109   }
    110   ]]></style>
    111 
    112  </head>
    113 
    114  <body>
    115 
    116   <p>Test passes if the blue stripe and orange stripe are as a whole <strong>exactly as wide as</strong> the black stripe.</p>
    117 
    118   <table>
    119 
    120    <col />
    121    <col />
    122    <col />
    123 
    124    <tr>
    125     <td></td>
    126     <td id="tested-cell">F04</td>
    127     <td></td>
    128    </tr>
    129 
    130   </table>
    131 
    132   <div id="reference">200px wide</div>
    133 
    134  </body>
    135 </html>