| 1. Всякий размер должен указываться только в случае необходимости.
В HTML+CSS всё как в обычной жизни.
На вопрос в библиотеке - "А где у вас тут научная фантастика?" - можно приблизительно показать направление рукой, а вот "Схема эвакуации при пожаре" в той же библиотеке - она должна быть чёткой.
Ибо при пожаре точное направление - необходимо.
2. Если в ячейке имеются графические файлы, то указываться должен размер этих самых графических файлов, а никак не размеры ячейки, куда они "впихнуты".
Так что - исправьте.
3. Главный принцип разработчиков браузеров - сделать ВСЁ, чтобы человек мог получить ВСЮ информацию с экрана.
Поэтому если в ячейке у вас находится рисунок размерами 200 на 200, а вы пропишете этой ячейке размеры 100 на 100, браузер плюнет на указанные вами размеры и ПО-ЛЮБОМУ раздвинет ячейку так, чтобы вместился и рисунок, и осталось место для всего прочего, в т.ч. и для паддинга ячейки.
4. Размеры всей таблицы браузером формируются так:
Первый этап:
- ширина таблицы получается суммированием ширин всех столбцов таблицы;
-- ширина столбца таблицы определяется шириной самой протяжённой ячейки этого столбца;
---- прочие ячейки столбца (имеющие ширину меньше максимальной) принудительно увеличиваются до максимальной ширины;
----- высота таблицы получается суммированием высот всех строк таблицы;
------ высота строки определяется высотой самой высокой ячейки этой строки;
------- прочие ячейки строки (имеющие высоту меньше максимальной) принудительно увеличиваются до максимальной высоты;
-------- к полученным ширине/высоте таблицы добавляются толщины бордеров самой таблицы (тех бордеров, которые указаны непосредственно в правилах стиля для тега <TABLE>).
Второй этап:
- полученные значения высоты/ширины сравниваются с теми размерами, которые верстальщик указал для высоты/ширины таблицы (если он их указал);
-- если размеры совпадают, то работа завершена;
---а вот если размеры не совпадают, то браузер переходит к следующему этапу.
Третий этап:
- если какой-то размер, указанный верстальщиком, БОЛЬШЕ, чем получилось у браузера, то браузер принудительно увеличивает соответствующий размер у строк(или столбцов) и, соответственно, у ячеек, и завершает работу;
-- если какой-то размер, указанный верстальщиком, МЕНЬШЕ, чем получилось у браузера, то браузер начинает просматривать ячейки на предмет нахождения возможности уменьшить их размеры. Высота обычно и так минимальна. А вот по ширине есть возможность уменьшить за счёт переноса слов в строках (если не указан атрибут nowrap). Но такой перенос может вызвать увеличение высоты ячейки (и, следовательно, строки и всей таблицы). Браузер снова возвращается ко второму этапу.
5. Спрашивается - зачем заниматься троллингом браузера, если полученные браузером самостоятельно размеры вас полностью устраивают?
Зачем заставлять браузер "ходить по кругу" и исполнять совершенно ненужные вам второй и третий этапы формирования размеров таблицы?
Резюме: всё, что САМО получается устраивающим вас во всех браузерах, не требует дополнительных прописанных размеров.
По простой причине - браузер, самостоятельно вычисляя итоговый размер объекта, исходя из размеров контента, в него входящего, НИКОГДА не ошибётся.
А вот вы, просчитывая и прописывая эти размеры, можете и ошибиться.
Что может в итоге привести к искажениям. | |