Tak, możesz ich użyć, na przykład ja używam ich do łatwiejszego stylizowania grup danych, takich jak to:
thead th { width: 100px; border-bottom: solid 1px #ddd; font-weight: bold; }
tbody:nth-child(odd) { background: #f5f5f5; border: solid 1px #ddd; }
tbody:nth-child(even) { background: #e5e5e5; border: solid 1px #ddd; }
<table>
<thead>
<tr><th>Customer</th><th>Order</th><th>Month</th></tr>
</thead>
<tbody>
<tr><td>Customer 1</td><td>#1</td><td>January</td></tr>
<tr><td>Customer 1</td><td>#2</td><td>April</td></tr>
<tr><td>Customer 1</td><td>#3</td><td>March</td></tr>
</tbody>
<tbody>
<tr><td>Customer 2</td><td>#1</td><td>January</td></tr>
<tr><td>Customer 2</td><td>#2</td><td>April</td></tr>
<tr><td>Customer 2</td><td>#3</td><td>March</td></tr>
</tbody>
<tbody>
<tr><td>Customer 3</td><td>#1</td><td>January</td></tr>
<tr><td>Customer 3</td><td>#2</td><td>April</td></tr>
<tr><td>Customer 3</td><td>#3</td><td>March</td></tr>
</tbody>
</table>
Możesz zobaczyć przykład tutaj . Działa tylko w nowszych przeglądarkach, ale to właśnie obsługuję w mojej obecnej aplikacji, możesz użyć grupowania dla JavaScript itp. Najważniejsze jest to wygodny sposób wizualnego grupowania wierszy, aby dane były znacznie bardziej czytelne . Istnieją oczywiście inne zastosowania, ale jeśli chodzi o odpowiednie przykłady, ten jest dla mnie najbardziej powszechny.
tbody
czy wielu?<tbody>
. Kiedy zaczynasz zagnieżdżać tabele, zwykle powoduje to prawdziwe problemy z nawigacją dla czytnika ekranu.<tbody>
elementów opisuje oddzielne grupy w tabeli, jak wyjaśniono w odpowiedzi. Powinienem również dodać, że ogólnie lepiej jest kierować komórki na tła, więc CSS powinien być na przykładtbody:nth-child(odd) td { background: #f5f5f5; }
:nth-child()
użycia CSS w połączonej demonstracji, wielokrotność<tbody>
będzie działać w dowolnej przeglądarce.Tak. Z DTD
Więc oczekuje jednego lub więcej. Następnie mówi dalej
źródło
tbody
elementów jest w porządku) pozostaje. W szczególności możesz teraz umieścić jedentfoot
element po tym,tbody
jeśli chcesz . (Zręcznie przesunęły się w stronę DTD mówiąc, że nie zapewniają .) :-)<tr>
więc może to być również zero (tzn. Osoba lub tr oznacza, że może to być tr i nie ma osoby).Zgodnie z tym przykładem można to zrobić: w3-struct-tables .
źródło
Problem Martina Joinera jest spowodowany niezrozumieniem
<caption>
tagu.<caption>
Tag definiuje podpis tabeli.<caption>
Tag musi być pierwszym dzieckiem<table>
tagu.Możesz podać tylko jeden podpis na tabelę.
Należy również pamiętać, że
scope
atrybut należy umieścić na<th>
elemencie, a nie na<tr>
elemencie.Właściwy sposób napisania tabeli z wieloma nagłówkami i wieloma osobami to coś takiego:
źródło
caption
Tag powinien postępować otwarcietable
tag. developer.mozilla.org/en-US/docs/Web/HTML/Element/tablescope="rowgroup"
(zamiastcol
)tbody
nagłówków. Zobacz przykład .Tak. Używam ich do dynamicznego ukrywania / odsłaniania odpowiedniej części stołu, np. Kursu. Mianowicie.
Można udostępnić przycisk do przełączania między wszystkim lub tylko bieżącym dniem, manipulując tbodies bez przetwarzania wielu wierszy osobno.
źródło
EDYCJA:
caption
Tag należy do tabeli i dlatego powinien istnieć tylko raz. Nie kojarzcaption
z każdymtbody
elementem tak jak ja:ZŁY PRZYKŁAD POWYŻSZY: NIE KOPIUJ
Powyższy przykład nie wyświetla się tak, jak można się spodziewać, ponieważ takie pisanie wskazuje na nieporozumienie
caption
znacznika. Będziesz potrzebował wielu hacków CSS, aby był poprawnie renderowany, ponieważ byłbyś niezgodny ze standardami.Szukałem standardów W3C w
caption
tagu, ale nie mogłem znaleźć wyraźnej reguły, która mówi, że musi być tylko jedencaption
element na tabelę, ale tak jest w rzeczywistości.źródło
Ponadto, jeśli uruchomisz dokument HTML z wieloma
<tbody>
znacznikami poprzez W3C's HTML Validator , z HTML5 DOCTYPE, zostanie pomyślnie sprawdzony.źródło
Utworzyłem JSFiddle, w którym mam dwa zagnieżdżone powtórzenia ng z tabelami i nadrzędne ng-powtórzenie na tbody. Jeśli przejrzysz dowolny wiersz w tabeli, zobaczysz, że istnieje sześć elementów tbody, tj. Poziom nadrzędny.
HTML
(Uwaga dodatkowa: to wypełnia DOM, jeśli masz dużo danych na obu poziomach, dlatego pracuję nad dyrektywą w celu pobierania danych i zastępowania, tj. Dodawania do DOM po kliknięciu elementu nadrzędnego i usuwania po kliknięciu innego lub tego samego elementu nadrzędnego ponownie. Aby uzyskać takie zachowanie, jakie można znaleźć na Prisjakt.nu , przewiń w dół do wymienionych komputerów i kliknij wiersz (nie łącza). Jeśli to zrobisz i sprawdzisz elementy, zobaczysz, że tr jest dodany i a następnie usuwane, jeśli rodzic zostanie ponownie kliknięty).
źródło