Chociaż tabel używano do budowy struktury strony od początku istnienia internetu, nie są one jednak do tego przeznaczone. Poza tym istnieją o wiele lepsze rozwiązania. Tabeli używa się do prezentacji danych numerycznych, podobnych do tych w arkuszach kalkulacyjnych.

W dawniejszych czasach (ze starymi przeglądarkami) można było zmieniać wygląd komórek i kolum stosując takie właściwości jak background colour, background image, itp. Większość z nich wyszła już z użycia, co wcale nie znaczy, że nie bedą one działać w przeglądarkach. etc. Po prostu nie można na nich polegać. Jeśli chcesz zastosować tło obrazka (background image) w tabelce, Netscape 4 i wcześniejsze wersje powtórzą go w każdej komórce tabeli, co daje wygląd kalejdoskopu. Raczej frustrujące doświadczenie…

Kiedyś można było określać wysokość tabelki w pikselach lub procentach, obecnie nie jest to możliwe. Tabelki same dopasowują wysokość do wielkości umieszonej w nich treści.

Stylowanie tabelek arkuszami może być trochę niezręczne i nie koniecznie praktyczne. Można zbudować własną strukturę tabel przy użyciu właściwości display:table; i display:table-cell; które traktują każdą komórkę jako niezależny div. Zazwyczaj jednak stylujemy jedynie elementy takie jak: table, tr, td, th, co w zupełności powinno wystarczyć dla naszych potrzeb.

Element tr jest rzędem komórek poziomych, natomiast td podziałem tych komórek.

Tabelki dziedziczą niektóre właściwości divów, w których są umieszone. Jeśli element <body> ma zdefiniowaną rodzinę czcionek np.: verdana, arial, sans-serif style i kolor: #009, tabelki odziedziczą te właściwości z wyjątkiem np.: wielkości czcionki czy wyrównania tekstu. Istnieje pewna hierarchia. Każda definicja dla elementu <td> automatycznie staje się definicją elementu <tr> i jest ona ważniejsza od definicji określonych dla całej tabeli. Można to wykorzystać. Jeśli ustawi się kolor tła tabeli na czarny i kolor td na biały oraz właściwość cellspacing=”2″, otrzyma się tabelkę z białymi komórkami z 2-pikselowymi ramkami dookoła w kolorze czarnym.

1234
1234
1234

Tabela 1. Tło tabeli jest przeźroczyste wraz z delikatym kolorem dodanym do tła elementu <td>.

Dostępne są również możliwości ustawiania właściwości ramek tabeli takich jak: kolor i rodzaj (solid, dotted, dashed, itp).

1234
1234
1234

Tabela 2. W zależności od rodzaju danych, można bardziej uwidocznić rzędy poziome lub kolumny.

Nagłówek 1Nagłówek 2Nagłówek 3Nagłówek 4
1234
1234

Tabela 3. Trójwymiarowy efekt poprzez zmianę koloru ramek. Nagłówki <th> w troszeczkę cimniejszym kolorze.

Inna sztuczką jest stosowanie cieniowanych obrazów, które są powtarzane właściwością background-repeat: repeat-x.

table background Mały obrazek (227 bajtów) powtarzany w poziomie…

Rząd 1234
Rząd 1234
Rząd 1234
Rząd 1234

Tabela 4. Troszeczkę ciemniejsze cienie w nagłówkach.

Jeśli chcesz stylować poszczególne komórki, możesz definiować je indiwidualnie.

<td style=”background-color: #f00″>cell 1</td>

1234
234
123
1234

Tabela 5. Trochę dziwne rozwiązanie!

Używanie tej metody ma pewne cechy negatywne, mianowicie, nie można mieć kontroli na taką tabelką z zewnętrznego pliku CSS.
Lepszym sposobem jest umieszczenie rzędów lub kolumn w divach np.:

#col1 td { … }
#col2 td { … }

Pozwala ta na znacznie lepszą kontrolę tabelki.