Пустые ячейки имеют фиксированную ширину 0? - PullRequest
1 голос
/ 12 марта 2012

У меня есть таблица с 5 столбцами, 2 из которых имеют заданную ширину, остальные три - нет. Различные браузеры интерпретируют это противоречиво.

Взгляните на эту скрипку в разных браузерах, чтобы понять, что я имею в виду.

Firefox и IE9 отображают его так, как я считаю правильным: все ячейки имеют одинаковую ширину 20% (две имеют заданную ширину 20% каждая, а оставшиеся 60% делятся между оставшимися тремя ячейками).

Chrome, Opera, IE7 и IE8 заставляют пустые ячейки без заданной ширины иметь нулевую ширину, что, в свою очередь, заставляет две другие ячейки растягиваться до ширины 50% каждая. Помещение содержимого в одну из трех пустых ячеек заставляет их брать всю доступную ширину (60%, если в одной ячейке есть содержимое, 30%, если две, и т. Д.). Аналогичным образом, удаление содержимого из одной из двух ячеек с заданной шириной приводит к принудительной ширине 0.

Какие браузеры правильно поняли, а какие неправильно?

Кроме того, я просмотрел спецификацию W3C, касающуюся таблиц, но нашел только описание свойства empty-cells , которое должно контролировать рендеринг пустых ячеек с границами / фоном, но это не влияет на ширину клеток. Я думал, что свойство table-layout может сработать, но хотя установка table-layout:fixed в Chrome заставляет все столбцы появляться, нет никакого способа (или, по крайней мере, я его не вижу) сделать противоположность в Firefox. Если бы вы могли уточнить это и / или указать мне на правильный раздел спецификации W3C, который охватывает это, я был бы очень признателен.

Ответы [ 3 ]

1 голос
/ 18 июля 2012

Проблема возникает из-за того, что W3C, похоже, еще не рассмотрел ее, они не предложили никакого «правильного» способа справиться с этой ситуацией.Браузеры могут интерпретировать их так, как они хотят, по моему мнению, именно так IE9 и Firefox делают это.

0 голосов
/ 15 июля 2012

положить &nbsp; внутрь "пусто" <td>

0 голосов
/ 15 июля 2012

ИМХО все браузеры отображают вещи ПРАВИЛЬНО. Как разработчик, мы должны понимать, что мы ожидаем от пустых ячеек. Всегда лучше определить ширину или добавить несколько пробелов, даже если ваша ячейка будет пустой для достижения согласованного отображения во всех браузерах.

...