Podejście do układu oparte na tabelach
Poznanie powodów, dla których wiadomości HTML używają tabel zamiast div
Podejście do układu oparte na tabelach to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.
Dlaczego tabele w wiadomościach e-mail
Klienci poczty e-mail — zwłaszcza Outlook w systemie Windows, który korzysta z silnika renderującego Microsoft Word — nie obsługują flexboxa, grida ani nawet niezawodnego układu blokowego. Tabele są jedynym podstawowym mechanizmem układu, który renderuje się spójnie we wszystkich najważniejszych klientach poczty.
Pojedyncza tabela zewnętrzna
Każda responsywna wiadomość e-mail zaczyna się od zewnętrznej tabeli <table> o szerokości 100%, która pełni funkcję treści wiadomości, a następnie zawiera wewnętrzną tabelę o stałej szerokości (zwykle 600px) przechowującą właściwą treść. Ten dwupoziomowy wzorzec jest podstawą niemal każdego produkcyjnego szablonu.
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="center">
<table width="600" cellpadding="0" cellspacing="0" border="0">
<tr><td>Content goes here</td></tr>
</table>
</td>
</tr>
</table>Obowiązkowe atrybuty tabel
Do każdej tabeli należy zawsze dołączyć cellpadding="0" cellspacing="0" border="0". Bez tych atrybutów Outlook wstawia nieoczekiwane odstępy. Dodanie role="presentation" informuje czytniki ekranu, aby pominęły semantykę tabeli, co jest prawidłowe, ponieważ tabele układu nie służą do prezentowania danych.
Zagnieżdżone tabele dla kolumn
Aby utworzyć wiele kolumn, należy zagnieździć tabelę z dwiema komórkami <td> w wierszu zawierającym treść. Każda komórka przechowuje jedną kolumnę. Należy unikać div+float — Outlook ignoruje float i mimo to układa kolumny pionowo, przez co projekt przestaje działać prawidłowo.
600px to standardowa szerokość
Domyślny panel podglądu na komputerach ma około 600px szerokości. Projektowanie z myślą o tej szerokości pozwala wygodnie wyświetlać wiadomość bez poziomego przewijania jednocześnie w Outlooku, Gmailu na komputerze, Apple Mail, Yahoo i Thunderbirdzie.
Układanie kolumn na urządzeniach mobilnych za pomocą media queries
W przypadku małych ekranów należy za pomocą media query skierować regułę do komórek wewnętrznej tabeli i ustawić szerokość na 100% oraz display na block, co spowoduje ułożenie kolumn jedna pod drugą. iOS Mail i Gmail na Androidzie respektują media queries; Outlook 365 na komputerach je ignoruje, ale zachowuje układ 600px przeznaczony dla komputerów.
@media (max-width: 600px) {
.col {
display: block !important;
width: 100% !important;
}
}Tła na poziomie komórek
Kolory i obrazy tła należy stosować do komórek <td>, a nie do elementów div. Outlook niezawodnie obsługuje atrybut bgcolor elementu td, natomiast CSS background-color zastosowany do elementu div może zostać usunięty lub całkowicie zignorowany, zależnie od klienta.
VML dla teł w Outlooku
Outlook potrzebuje Vector Markup Language (VML) do obsługi obrazów tła. Nowoczesny CSS background-image należy opakować w komentarze warunkowe <!--[if mso]>...<![endif]--> z wbudowanym mechanizmem zastępczym v:rect, aby Outlook wyrenderował obraz, podczas gdy wszystkie inne klienty użyją CSS.
Unikanie nowoczesnego CSS
Należy pomijać flexbox, grid, właściwości niestandardowe (o ograniczonej obsłudze) i większość pozycjonowania. Warto używać display: block/inline, stałych szerokości określanych za pomocą atrybutów oraz stylów inline. Wynik może wyglądać przestarzale według standardów internetowych, ale renderuje się identycznie w każdej skrzynce odbiorczej.
Cellpadding do odstępów wewnętrznych
Należy używać atrybutu cellpadding i pojedynczej komórki <td> z dopełnieniem do tworzenia wewnętrznych odstępów. Marginesy komórek tabel są zawodne w Outlooku; padding elementu td działa wszędzie. Można połączyć bgcolor i padding w tej samej komórce td, aby tworzyć komponenty typu „card” bez elementów div.
Dostępność
Do każdej tabeli układu należy dodać role="presentation", aby czytniki ekranu nie ogłaszały „wiersz, kolumna 1 z 2”. Należy także dodać tekst alternatywny do każdego obrazu, używać rzeczywistego tekstu dla każdej treści (a nie obrazów zawierających tekst) oraz zachować przejrzystą hierarchiczną kolejność nagłówków.
Sprawdzenie wiedzy
Dlaczego do układania wiadomości e-mail używa się tabel, a nie elementów div z CSS flexbox?
Podsumowanie
Układ wiadomości e-mail w HTML wykorzystuje zagnieżdżone tabele z cellpadding/cellspacing/border ustawionymi na zero oraz role="presentation". Zewnętrzna tabela o szerokości 100% centruje wewnętrzną tabelę 600px; zagnieżdżone komórki td tworzą kolumny, które media queries mogą ułożyć jedna pod drugą na urządzeniach mobilnych. Należy unikać flexboxa i grida, używać bgcolor w elementach td oraz dodawać mechanizmy zastępcze VML dla teł w Outlooku.
Często zadawane pytania
Czy lekcja „Podejście do układu oparte na tabelach” jest bezpłatna?
Tak — pełny tekst „Podejście do układu oparte na tabelach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Podejście do układu oparte na tabelach”?
Poznanie powodów, dla których wiadomości HTML używają tabel zamiast div Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć HTML Academy?
Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Podejście do układu oparte na tabelach”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?
Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podejście do układu oparte na tabelach
- Style inline w wiadomościach e-mail
- Obsługa obrazów w klientach poczty
- Testowanie za pomocą Litmus i Email on Acid