colspan: jedna komórka na kilka kolumn
colspan="n" sprawia, że komórka ma szerokość n kolumn. Jej wiersz ma wtedy o n - 1 komórek mniej. Tutaj suma zajmuje dwie pierwsze kolumny:
Ostatni wiersz ma dwie komórki, ale pierwsza liczy się za dwie, więc wiersz nadal ma trzy kolumny jak pozostałe.
rowspan: jedna komórka na kilka wierszy
rowspan="n" sprawia, że komórka ma wysokość n wierszy. Wiersze poniżej pomijają tę kolumnę, bo wysoka komórka już ją wypełnia:
Wiersze Boba i Cy mają tylko jedno <td>: kolumnę Team zajmuje już "Design". W HTML nic tego nie oznacza, więc tabelę z rowspan czytaj z góry na dół i licz, które kolumny są wciąż zajęte.
colspan i rowspan razem: plan zajęć
Jedna komórka może się rozciągać w obu kierunkach. Klasyczny przykład to plan zajęć, w którym niektóre lekcje trwają dwa bloki, a inne obejmują dwa dni:
Policz wiersz 10:00: nagłówek z godziną, potem Mon zajęty przez HTML z wiersza wyżej, potem Lab wypełniający Tue i Wed. O 11:00 Mon jest znowu wolny, a Lab nadal zajmuje Tue i Wed, więc wiersz ma jedną komórkę z danymi.
Liczenie komórek, żeby tabela się nie rozjechała
Każdy wiersz musi mieć tę samą liczbę kolumn, licząc colspan każdej komórki i kolumny zajęte przez komórki z rowspan z góry. Gdy wiersz ma o jedną komórkę za dużo, przeglądarka dodaje dla niej nową kolumnę i tabela ma poszarpaną krawędź:
W błędnej tabeli drugi wiersz zapomina, że A zajmuje jego pierwszą kolumnę, więc D trafia do trzeciej kolumny, której nie ma żaden inny wiersz. Rozwiązanie to usunięcie jednej komórki. Ten sam błąd z colspan to zostawienie wszystkich pierwotnych komórek w wierszu, który ma szeroką komórkę.
Za mało komórek to odwrotny problem: wiersz kończy się za wcześnie i zostawia dziurę na końcu.
Grupowane nagłówki z colspan
Nagłówek może obejmować kolumny, które opisuje, nad wierszem bardziej szczegółowych nagłówków. Oznacz go scope="colgroup", żeby czytniki ekranu przypisały go do wszystkich kolumn pod nim:
"City" obejmuje oba wiersze nagłówka dzięki rowspan="2", a każdy miesiąc obejmuje swoje dwie kolumny dzięki colspan="2". Elementy <colgroup> definiują grupy kolumn, do których odnosi się scope="colgroup". Czytnik ekranu na komórce Rzymu 31 może wtedy powiedzieć "Rome, July, High, 31". Resztę struktury tabeli opisuje strona tabele w HTML.
Scalaj tylko przy prawdziwej strukturze
Scalenia utrudniają czytanie tabeli czytnikiem ekranu oraz jej sortowanie, filtrowanie i kopiowanie do arkusza kalkulacyjnego. Używaj ich tam, gdzie dane naprawdę są pogrupowane (suma, nagłówek nad podkolumnami, zajęcia trwające dwie godziny). Jeśli tabela potrzebuje wielu scaleń, dwie prostsze tabele są często czytelniejsze.
Częste błędy
- Pozostawienie zajętych komórek. Komórka z
colspan="2"zastępuje dwie komórki; usuń jedną z pierwotnych. - Zapominanie o wierszach pod
rowspan. Każdy z nich potrzebuje o jedną komórkę mniej. - Pisanie
colspanna<tr>. Działa tylko na<td>i<th>. - Scalenia do układu wizualnego, np. wiersz z banerem w tabeli układającej stronę. Do układu używaj CSS grid.
colspan="100%"w znaczeniu "cała szerokość". Przeglądarka czyta tylko początkowe cyfry, więc ta komórka obejmuje 100 kolumn i dodaje do tabeli puste kolumny. Wartość to całkowita liczba kolumn.
Najczęściej zadawane pytania
Do czego służy colspan w HTML?
colspan rozciąga <td> lub <th> na kilka kolumn: <td colspan="3"> zajmuje w swoim wierszu miejsce trzech komórek. Ten wiersz potrzebuje wtedy o dwie komórki mniej niż pozostałe.
Do czego służy rowspan w HTML?
rowspan rozciąga komórkę w dół na kilka wierszy: <td rowspan="2"> wypełnia swój wiersz i ten poniżej. Następny wiersz musi pominąć tę kolumnę, bo komórka powyżej już ją zajmuje.
Czy komórka może mieć jednocześnie colspan i rowspan?
Tak. <td colspan="2" rowspan="2"> zajmuje blok dwóch kolumn na dwa wiersze. Każdy wiersz, przez który przechodzi, potrzebuje o dwie własne komórki mniej.
Dlaczego z mojej tabeli wystaje dodatkowa komórka?
Po uwzględnieniu scaleń jakiś wiersz ma więcej komórek niż pozostałe. Zwykle wiersz pod rowspan nadal zawiera komórkę dla zajętej kolumny albo wiersz z colspan zachował wszystkie pierwotne komórki. Usuń nadmiarowe <td>.
Jaka jest maksymalna wartość colspan?
Przeglądarki ograniczają colspan do 1000, a rowspan do 65534. W przypadku colspan wartość 0 albo taka, która nie zaczyna się od cyfry, jest traktowana jak 1.