Ответ 1
От http://www.w3.org/TR/CSS21/tables.html
Это еще не было преувеличено CSS3, но эта часть спецификации ненормативна, поэтому, вероятно, браузеры не соответствуют ей точно (нет нормативного определения этого поведения afaik).
Ширины столбцов определяются следующим образом:
- Рассчитайте минимальную ширину содержимого (MCW) каждой ячейки: отформатированный содержимое может охватывать любое количество строк, но не может переполнять ячейку коробка. Если указанная "ширина" (W) ячейки больше MCW, W - минимальная ширина ячейки. Значение "auto" означает, что MCW является минимальная ширина ячейки. Также вычислите максимальную ширину ячейки каждой ячейки: форматирование содержимое без разрывов строк, кроме того, где явные разрывы строк происходят.
- Для каждого столбца определите максимальную и минимальную ширину столбца из ячейки, которые охватывают только этот столбец. Минимальным является то, что требуется ячейка с наибольшей минимальной шириной ячейки (или шириной столбца) в зависимости от того, что больше). Максимум - это то, что требуется ячейке с наибольшая максимальная ширина ячейки (или ширина столбца), в зависимости от того, какая из них больше).
- Для каждой ячейки, которая охватывает более одного столбца, увеличьте минимум ширины столбцов, которые он охватывает, так что вместе они, по крайней мере, как как ячейка. Сделайте то же самое для максимальной ширины. Если возможно, расширьте все натянутые столбцы примерно на ту же сумму.
- Для каждого элемента группы столбцов с "шириной", отличной от "auto" , увеличить минимальную ширину столбцов, которые она охватывает, чтобы вместе они, по крайней мере, столь же широки, как и ширина столбца.
Это дает максимальную и минимальную ширину для каждого столбца.
Минимальная ширина заголовка (CAPMIN) определяется путем вычисления для каждая подпись имеет минимальную внешнюю ширину заголовка, как MCW гипотетическая ячейка таблицы, содержащая заголовок, отформатированный как "display: block". Наибольшая из минимальных внешних границ CAPMIN.
Ширина столбца и заголовка влияет на ширину финальной таблицы следующим образом:
- Если свойство 'width' элемента 'table' или 'inline-table' имеет вычисленное значение (W), отличное от "auto" , используемая ширина больше W, CAPMIN и минимальную ширину, требуемую для всех столбцов плюс ячейку интервал или границы (MIN). Если используемая ширина больше MIN, дополнительная ширина должна быть распределена по столбцам.
- Если "таблица" или Элемент "inline-table" имеет "width: auto", используемая ширина - больше таблицы, содержащей ширину блока, CAPMIN и MIN. Однако, если либо CAPMIN, либо максимальная ширина, требуемая столбцами плюс расстояние между ячейками или границы (MAX) меньше, чем расстояние между ячейками блок, используйте max (MAX, CAPMIN).
Процентное значение для ширины столбца относительно ширины таблицы. Если таблица имеет "width: auto", процент представляет собой ограничение на ширине столбца, которую UA должен попытаться удовлетворить. (Очевидно, это не всегда возможно: если ширина столбца равна "110%", ограничение не может быть выполнено.)