Próbuję utworzyć stronę z danymi tabelarycznymi, które muszą pojawić się jako wiele tabel. Mam jednak do spełnienia dwa sprzeczne wymagania:Jak utworzyć obramowanie wokół sekcji tbody/thead tabeli?
- Każda tabela musi mieć wokół siebie obramowanie.
- Szerokości kolumn dla każdej tabeli muszą być w stanie zmienić rozmiar na podstawie zawartości. Jednak szerokość kolumn musi być spójna dla wszystkich tabel. (tj. rozmiar kolumny jest oparty na największej komórce w tej kolumnie we wszystkich tabelach).
Aby obsłużyć drugie wymaganie, mam jedną tabelę najwyższego poziomu, która zawiera wiele sekcji thead i tbody. Osiąga to # 2 pięknie. Zasadniczo Stworzyłem wiele pseudo-tabel w większej tabeli nadrzędnej, pogrupowanych jako pojedynczy thead z towarzyszącym tbody:
<table>
<thead>
table1 header content...
</thead>
<tbody>
table1 body content...
</tbody>
<thead>
table2 header content...
</thead>
<tbody>
table2 body content...
</tbody>
</table>
Teraz jestem stara się zająć pierwszego wymogu. Każdy pseudo-stół musi mieć wokół siebie obramowanie, podając się za prawdziwy stół.
Znalazłem, ku mojemu przerażeniu, że IE 6/7 nie pozwala na dodawanie stylów obramowania wokół tagów thead/tbody, lub po prostu dodałbym styl graniczny górny/lewy/prawy do theadu i dolny/lewy/prawy styl granicy do tbody.
Tworzenie oryginalnych tabel i granic stylów dla tych prac, aby rozwiązać # 1, ale zrywa # 2.
Inną opcją jest użycie stylów pierwszorzędnego i ostatniego dziecka do utworzenia moich granic. Niestety nie jest to ani ładne, ani nie działa w IE 6/7.
Inną alternatywą, nad którą się zastanawiałem, jest utworzenie obramowania wokół całego stołu i próba utworzenia rzędu między pseudonodami, co tworzy moją separację, ale chociaż mogę utworzyć górne/dolne granice dla tego ok, mam jednak aby odkryć środek do usunięcia granicy lewej/prawej tabeli dla tego rzędu. Czy to jest możliwe?
Moja ostatnia alternatywa to tworzenie klas do rysowania lewej, prawej, górnej i dolnej granicy, ustawienie odpowiednich komórek tabeli do korzystania z tych klas. Wiem, że to ostatecznie zadziała, ale jest okropnie niezgrabne i powoduje naprawdę niechlujny znacznik. Grupy Colgroups nie mogą mnie tutaj uratować, ponieważ nie są w stanie obsługiwać stylów obramowania. To niefortunne, ponieważ mogłoby to nieco ułatwić żołądek.
Czy istnieje lepsza metoda na wykonanie granic, które mogłem ominąć?
jest jQuery opcja? –
Niestety, nie. Moi główni odbiorcy prawdopodobnie nie będą mieć włączonego javascript. –