automatic table layout definition

Refers to a table layout method of using CSS that  resembles a long-used model by authors to create HTML tables.  This method can be used in the following matter: 1) The minimum and maximum cell width for each cell in a column is calculated. 2) The minimum width needed to view the content is determined.  If a cells contains a width value bigger than the minimum possible width, a value of width is set for the minimum cell width.  And the minimum cell width is set to the minimum content width if the cell’s width value is auto.  3) Calculate the width needed to show the content minus any line-breaking for the maximum width.  The maximum cell width is this value.  4) Determine both the minimum and maximum column width.  5) The total of the minimum column widths needs to be equal to the minimum cell width for the spanning cell.  Moreover, the total of the maximum column widths needs to be equal to the spanning cell’s maximum width.  Any differences in the column widths should be divided equally amid the spanned columns.  Also, one needs to take into consideration that when a column width has a % value for the width, the % is determined as it relates to the table’s width - though the width may not be given.  This percentage value needs to be used in the next part of the algorithm.  A user agent can determine the width of a width once he/she has figured out how narrow or wide each column may be.  This process is figured out in the following manner:  A) The computed table width is contrasted to the total of all the column widths, as well as any cell-spacing or borders.  The bigger of the two values is chosen as the width of the table.  All the widths of the columns are expanded by an equal measurement so they take up the width of the table if the table’s computed width is bigger than the total of the column’s cell-spacing, borders and widths.  However, if the computed width of the table is auto, then a table’s width is found by totaling the cell-spacing, borders and column widths.  So, like traditional HTML tables, this signifies that a table will remain as wide as possible to have its content viewed - but no more as necessary.  After these steps are completed, a user agent can commence with laying out the table.