Я пытаюсь создать страницу с табличными данными, которые должны отображаться как несколько таблиц. Однако у меня есть два противоречащих друг другу требования:
- Каждая таблица должна иметь границу вокруг нее.
- Ширины столбцов для каждой таблицы должны иметь возможность изменять размер на основе содержимого. Однако ширина столбцов должна быть согласованной во всех таблицах. (т.е. размер столбца основан на наибольшей ячейке в этом столбце во всех таблицах).
Чтобы справиться со вторым требованием, у меня есть одна таблица верхнего уровня, которая содержит несколько разделов thead и tbody. Это прекрасно подходит для №2. По сути, я создал несколько псевдо-таблиц в более крупной родительской таблице, сгруппированной как единый тед с сопровождающим телом:
<table>
<thead>
table1 header content...
</thead>
<tbody>
table1 body content...
</tbody>
<thead>
table2 header content...
</thead>
<tbody>
table2 body content...
</tbody>
</table>
Теперь я пытаюсь решить первое требование. Каждая псевдо-таблица должна иметь границу вокруг нее, передавая себя как подлинную таблицу.
Я с тревогой обнаружил, что IE 6/7 не позволяет добавлять стили границ вокруг тегов ad/tbody, или я просто добавил бы стиль верхней/левой/правой рамки в thead и нижний/левый/right border style to tbody.
Создание настоящих таблиц и границ стилей для этих работ для решения # 1, но это ломается # 2.
Другой альтернативой было бы использование стилей первого и последнего детей для создания моих границ. К сожалению, это не красиво, и не работает в IE 6/7.
Еще одна альтернатива, которую я изучал, - это создание границы вокруг всей таблицы и попытка создать строку между псевдо-таблицами, которая создает мое разделение, но пока я могу создать верхние/нижние границы для нее, я еще не создал чтобы обнаружить средство для удаления границы влево/вправо для этой строки. Возможно ли это?
Моим последним вариантом является создание классов для рисования левой, правой, верхней и нижней границ, установка соответствующих ячеек таблицы для использования этих классов. Я знаю, что это в конечном итоге сработает, но оно ужасно неуклюже и делает действительно грязную разметку. Colgroups не могут спасти меня здесь, поскольку они неспособны обрабатывать стили границ. Это несчастливо, так как это облегчит желудок для этого решения.
Есть ли лучший способ для выполнения границ, которые я, возможно, пропустил?