tor-browser

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

fixed-table-layout-003e09.xht (4036B)


      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-003e09-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 non-zero symetrical 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: 400px;
     24   }
     25 
     26   td {padding: 0px 24px;}
     27 
     28   td#tested-cell
     29   {
     30   background-color: blue;
     31   border-left: orange solid 0px;
     32   border-right: orange solid 72px;
     33   color: blue;
     34   width: 80px;
     35   }
     36 
     37   div#reference
     38   {
     39   background-color: black;
     40   color: black;
     41   margin-left: 118px;
     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    36px : half of border-left since such border must be split with cell in 1st column
     59  +
     60    24px : padding-left of the cell in the middle column
     61  +
     62    80px : width of the cell in the middle column
     63  +
     64    24px : padding-right of the cell in the middle column
     65   =======
     66   164px : width of the middle column
     67 
     68 
     69   So,
     70       400px : table set width
     71     -
     72       164px : width of the middle column
     73       ======
     74       236px
     75 
     76       So, each of the 2 remaining columns must be
     77       half of such extra horizontal table space,
     78       which is 236px divided by 2 == 118px.
     79 
     80   1st column width calculations
     81   -----------------------------
     82 
     83     24px    : padding-left of cell in 1st column
     84   +
     85     (solve) : width of cell in 1st column
     86   +
     87     24px    : padding-right of cell in 1st column
     88    ======
     89    118px    : width of 1st column
     90 
     91   So, the width of the cell in first column must be exactly 70px.
     92 
     93 
     94   3rd column width calculations
     95   -----------------------------
     96 
     97     36px    : half of border-right of cell in middle column
     98               since such border must be split with cell in 3rd column
     99   +
    100     24px    : padding-left of cell in 3rd column
    101   +
    102     (solve) : width of cell in 3rd column
    103   +
    104     24px    : padding-right of cell in 3rd column
    105    =======
    106    118px    : width of 3rd column
    107 
    108    So, the width of the cell in 3rd column must be exactly 34px.
    109 
    110 
    111   Finally, the precise horizontal point where the border-right of cell
    112   in first column begins to be drawn, painted is:
    113 
    114     24px    : padding-left of cell in 1st column
    115   +
    116     70px    : width of cell in 1st column
    117   +
    118     24px    : padding-right of cell in 1st column
    119   =======
    120    118px
    121 
    122   Therefore the margin-left: 118px value of the div#reference.
    123 
    124   */
    125 
    126   width: 200px;
    127   }
    128   ]]></style>
    129 
    130  </head>
    131 
    132  <body>
    133 
    134   <p>Test passes if the blue stripe and orange stripe are as a whole <strong>exactly as wide as</strong> the black stripe.</p>
    135 
    136   <table>
    137 
    138    <col />
    139    <col />
    140    <col />
    141 
    142    <tr>
    143     <td></td>
    144     <td id="tested-cell">E09</td>
    145     <td></td>
    146    </tr>
    147 
    148   </table>
    149 
    150   <div id="reference">200px wide</div>
    151 
    152  </body>
    153 </html>