Какова ширина по умолчанию для ячейки таблицы HTML <td & gt ;?

Я не смог найти ответ на этот вопрос: Где в спецификации или в документации UA указана ширина по умолчанию <td> определено?

Я искал уровень жизни HTML Рекомендация HTML5 и другие источники .

Насколько я понимаю (основываясь на использовании и наблюдениях), ячейка таблицы по умолчанию будет занимать всю ширину столбца, в котором она находится. И ячейке нельзя присвоить ширину, отличную от столбца, если в столбце существуют другие ячейки.

Я ищу официальное подтверждение этого поведения, предпочтительно в документации W3C или пользовательского агента. Но любая авторитетная ссылка приемлема.

11 голосов | спросил Michael_B 10 PM00000090000003431 2015, 21:47:34

3 ответа


0

Физическая /визуальная ширина ячейки таблицы определяется не HTML, а CSS. Спецификация CSS 2.1 имеет целый раздел, посвященный макету таблицы , который дополняет описание HTML табличных данных.

Кроме того, сам CSS не полностью определить как рассчитывается ширина ячейки. Это происходит с помощью алгоритма с фиксированной разметкой таблицы:

  

В алгоритме фиксированной компоновки таблицы ширина каждого столбца определяется следующим образом:

     
  1. Элемент столбца со значением, отличным от 'auto', для свойства 'width' устанавливает ширину для этого столбца.
  2.   
  3. В противном случае ячейка в первой строке со значением, отличным от 'auto' для свойства 'width', определяет ширину для этого столбца. Если ячейка охватывает более одного столбца, ширина делится на столбцы.
  4.   
  5. Любые оставшиеся столбцы делят поровну оставшееся горизонтальное табличное пространство (минус границы или интервал между ячейками).
  6.   

Ширина таблицы будет больше значения свойства width для элемента таблицы и суммы значений ширины столбца (плюс интервал между ячейками или границы). Если таблица шире столбцов, дополнительное пространство должно быть распределено по столбцам.

, но он не дает ничего, кроме грубых указаний для автоматического размещения таблиц, которые пользовательские агенты могут выполнять или отклонять (в нем приведена пошаговая процедура, не похожая на процедуру с фиксированным расположением таблиц, но это полностью список ненормативный). Как правило, вы можете ожидать последовательного поведения от UA в большинство распространенных сценариев - как вы заметили, ячейка таблицы автоматического размера обычно занимает столько места, сколько требует ее содержимое, и не более. Но изучите крайние случаи, и вы найдете все виды сумасшедший .

ответил BoltClock 4 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 04 Sep 2015 07:46:06 +0300 2015, 07:46:06
0

Вот стандарты W3C для расчета ширины столбцов таблицы. В основном это оставлено на усмотрение реализующего браузера /агента.

  

Если автор не указывает информацию о ширине столбца, пользовательский агент   возможно, не удастся постепенно отформатировать таблицу, так как она должна ждать   для всего столбца данных прибыть, чтобы выделить   подходящая ширина.

     

Если ширина столбца оказывается слишком узкой для содержимого   В определенной ячейке таблицы пользовательские агенты могут выбрать переформатирование таблицы.

Источник: http://www.w3. орг /TR /HTML401 /структура /tables.html # ч-11.2.4.4

Примечание. Это документы HTML4.

ответил Jason W 10 PM00000090000002931 2015, 21:58:29
0

Минимальная ширина ячейки таблицы - 0 или размер самого большого слова или изображения в этой ячейке.

  

Алгоритм определения размера таблицы

     

Алгоритм определения размеров по умолчанию требует двух проходов по данным таблицы. На первом этапе перенос слов отключен, а пользовательский агент отслеживает минимальную и максимальную ширину каждой ячейки. Максимальная ширина задается самой широкой линией. Поскольку перенос слов отключен, абзацы обрабатываются как длинные строки, если они не разбиты на элементы
. Минимальная ширина задается самым широким словом или изображением и т. Д. С учетом начальных отступов и списка маркеров и т. Д. Другими словами, если вы должны отформатировать содержимое ячейки в собственном окне, определите минимальную ширину, которую вы могли бы сделать. окно до того, как все начнёт обрезаться.

     

Минимальная и максимальная ширина ячейки затем используются для определения соответствующей минимальной и максимальной ширины столбцов. Они, в свою очередь, используются для определения минимальной и максимальной ширины таблицы. Обратите внимание, что ячейки могут содержать вложенные таблицы, но это существенно не усложняет код. Следующим шагом является назначение ширины столбца в соответствии с текущим размером окна (точнее - шириной между левым и правым полями).

     

Границы таблицы и поля между ячейками должны быть включены в шаг назначения. Есть три случая:

     
  1. Минимальная ширина таблицы равна или больше доступного пространства. В этом случае назначьте минимальную ширину и разрешите пользователю осуществлять горизонтальную прокрутку. Для преобразования в шрифт Брайля необходимо заменить ячейки ссылками на примечания, содержащие их полное содержание. По соглашению они появляются перед таблицей.
  2.   
  3. Максимальная ширина таблицы вписывается в доступное пространство. В этом случае установите максимальную ширину столбцов.
  4.   
  5. Максимальная ширина таблицы больше доступного пространства, но минимальная ширина таблицы меньше. В этом случае найдите разницу между доступным пространством и минимальной шириной таблицы, назовем ее W. Давайте также назовем D разницей между максимальной и минимальной шириной таблицы.
  6.   

Для каждого столбца пусть d будет разницей между максимальной и минимальной шириной этого столбца. Теперь установите ширину столбца на минимальную ширину плюс d умножения на W над D. Это делает столбцы с большим количеством текста шире, чем столбцы с меньшими объемами.

     

Этот шаг назначения затем повторяется для вложенных таблиц. В этом случае ширина ячейки вмещающей таблицы играет роль текущего размера окна в приведенном выше описании. Этот процесс повторяется рекурсивно для всех вложенных таблиц.

     

Если атрибут COLSPEC явно указывает ширину столбца, пользовательский агент может попытаться использовать эти значения. Если впоследствии одна из ячеек переполняет ее ширину столбца, двухпроходный механизм может быть вызван для перерисовки таблицы с более подходящей шириной. Если атрибут указывает относительную ширину, то всегда необходима двухпроходная модель.

     

Затем алгоритм изменения ширины столбца изменяется:

     
  • Явные значения ширины из атрибута COLSPEC следует использовать, если они заданы, при условии, что они превышают минимальную ширину столбца, в противном случае следует использовать последний.
  •   
  • Для относительной ширины избыточное пространство W, как определено выше, соответствующим образом разделяется между столбцами, обеспечивая каждому столбцу по меньшей мере минимальную ширину. Если W равно нулю или отрицательно, ширина столбца должна быть увеличена по сравнению с минимальной шириной, чтобы соответствовать требованиям относительной ширины.
  •   

Если ширина таблицы указана с помощью атрибута WIDTH, пользовательский агент пытается установить ширину столбцов для соответствия. Атрибут WIDTH следует игнорировать, если в результате столбцы имеют минимальную ширину.

ответил davidcondrey 10 PM00000090000002031 2015, 21:59:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132