Tabele służą do tworzenia zestawień w postaci tabelarycznej.
Do tego celu używa się znaczników:
<table>, <tr>, <th>, <td> i <caption>.
Natomiast formatowanie tabel powinno się odbywać za pomocą stylów CSS, w związku z czym w HTML5 większość
atrybutów związanych z formatowaniem tabel jest traktowana jako przestarzała.
Tabele składają się z wierszy. Każdy wiersz ma określoną liczbę komórek, dlatego tworząc
tabelę w języku HTML, należy nie tylko zdefiniować ją za pomocą znacznika <table>,
ale także zdefiniować każdy jej wiersz przy użyciu znacznika <tr> oraz każdą komórkę
w wierszu za pomocą znacznika <td>.
Nagłówek tabeli jest definiowany z zastosowaniem znacznika <th>.
Domyślnie tabela jest wyświetlana bez obramowań.
Rodzaj i styl obramowania są ustawiane za pomocą właściwości obramowań w arkuszach stylów CSS.
Po wprowadzeniu następującego kodu:
<table>
<tr><th>Nazwisko</th><th>Imię</th><th>Wiek</th></tr>
<tr><td>Kowalski</td><td>Tadeusz</td><td>36</td></tr>
<tr><td>Polak</td><td>Adam</td><td>27</td></tr>
<tr><td>Makowska</td><td>Anna</td><td>23</td></tr>
<tr><td>Baranowska</td><td>Monika</td><td>24</td></tr>
</table>
otrzymamy tabelę:
| Nazwisko | Imię | Wiek |
|---|---|---|
| Kowalski | Tadeusz | 36 |
| Polak | Adam | 27 |
| Makowska | Anna | 23 |
| Baranowska | Monika | 24 |
Jak widać, tabela oraz komórki nie posiadają obramowania.
Należy zdefiniować je korzystając z arkusza CSS.
Definicje wprowadzamy w nagłówku strony.
Dodajemy następujący kod:
<style>
table, th, td {
border: 1px solid black;
}
</style>
Po dodaniu opisu stylu otrzymamy tabelę:
| Nazwisko | Imię | Wiek |
|---|---|---|
| Kowalski | Tadeusz | 36 |
| Polak | Adam | 27 |
| Makowska | Anna | 23 |
| Baranowska | Monika | 24 |
Obramowanie tabeli i komórek możemy połączyć stosując właściwość CSS border-collapse z wartością collapse
Dodajemy do definicji stylu tabeli:
<style>
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
</style>
Nasza tabela wygląda teraz następująco:
| Nazwisko | Imię | Wiek |
|---|---|---|
| Kowalski | Tadeusz | 36 |
| Polak | Adam | 27 |
| Makowska | Anna | 23 |
| Baranowska | Monika | 24 |
Formatowanie komórek tabeli z zastosowaniem właściwości CSS:
padding - margines wewnętrzny,border - obramowania,background - tło,text-align - położenie poziome,vertical-align - położenie pionowe,W języku HTML oprócz tabel, które mają taką samą liczbę komórek w każdym wierszu, można tworzyć tabele z różną liczbą komórek w wierszu. Efekt ten uzyskujemy poprzez łączenie komórek z sąsiednich kolumn.
Aby połączyć kilka komórek w wierszu,
należy w znaczniku <td> lub <th>, opisującym komórkę tabeli, zdefiniować atrybut
colspan="n", gdzie n określa, ile sąsiednich komórek zostanie połączonych.
Połączymy w jednej komórce zapis Nazwisko i imię stosując atrybut colspan:
<th colspan=2>Nazwisko i imię</th>
<table>
<tr><th colspan=2>Nazwisko i imię</th><th>Wiek</th></tr>
<tr><td>Kowalski</td><td>Tadeusz</td><td>36</td></tr>
<tr><td>Polak</td><td>Adam</td><td>27</td></tr>
<tr><td>Makowska</td><td>Anna</td><td>23</td></tr>
<tr><td>Baranowska</td><td>Monika</td><td>24</td></tr>
</table>
efekt:
| Nazwisko i imię | Wiek | |
|---|---|---|
| Kowalski | Tadeusz | 36 |
| Polak | Adam | 27 |
| Makowska | Anna | 23 |
| Baranowska | Monika | 24 |
Łączenie komórek tabeli może się odbywać również w kolumnach.
Łączone są komórki tej samej kolumny znajdujące się w sąsiednich wierszach.
Do takiego łączenia komórek służy definiowany w znaczniku <td> atrybut rowspan="n".
Dodamy kolumnę miejscowość, gdzie dwie pierwsze osoby mieszkają w Warszawie.
<td rowspan=2>Warszawa</td>
kod tabeli:
<table>
<tr><th>Nazwisko</th><th>Imię</th><th>Miejscowość</th></tr>
<tr><td>Kowalski</td><td>Tadeusz</td><td rowspan="2">Warszawa</td></tr>
<tr><td>Polak</td><td>Adam</td></tr>
<tr><td>Makowska</td><td>Anna</td><td>Gdańsk</td></tr>
<tr><td>Baranowska</td><td>Monika</td><td>Poznań</td></tr>
</table>
efekt:
| Nazwisko | Imię | Miejscowość |
|---|---|---|
| Kowalski | Tadeusz | Warszawa |
| Polak | Adam | |
| Makowska | Anna | Gdańsk |
| Baranowska | Monika | Poznań |
Znacznik <caption> pozwala dodać do tabeli tytuł.
Znacznik ten musi być umieszczony bezpośrednio po znaczniku <table>.
Przeglądarki internetowe tytuł podany w znaczniku <caption> umieszczają jako tekst wycentrowany nad tabelą.
W celu poprawienia czytelnoći tabeli wiersze mogą mieć inny styl dla parzystych odd i nieparzystych even.
Zmianę stylu uzyskujemy stosując właściwość:
tr:nth-child(even) - wiersze nieparzystetr:nth-child(odd) - wiersze parzysteZastosowanie następującej definicji stylu: (kolorem zielonym oznaczono elementy wprowadzające stylizację
<style>
table {
width:100%;
}
table, th, td {
border: 1px solid black;
border-collapse: collapse;
}
th, td {
padding: 15px;
text-align: left;
}
tr:nth-child(even) {
background-color: #ccc;
}
tr:nth-child(odd) {
background-color: #fff;
}
th {
background-color: #888;
color: white;
}
</style>
daje efekt:
<table> tworzy tabelę<tr> tworzy wiersz<td> tworzy komórkę tabeli<th> tworzy komórkę nagłówka<caption> tworzy tytuł tabeliborder definiuje obramowanieborder-collapse łączy obramowania komórekpadding określa wewnętrzny margines komórkitext-align określa poziome położenie tekstuvertical-align określa pionowe położenie tekstuborder-spacing ustala odstęp między komórkamicolspan łączy komórki poziomorowspan łączy komórki pionowo