5.6. Wyrównanie tekstu (text-align
)
Wprowadzenie: Poziome rozmieszczenie tekstu
Właściwość text-align
w CSS kontroluje **poziome wyrównanie** treści wewnątrz elementu blokowego lub komórki tabeli. Pozwala ona decydować, czy tekst ma być wyrównany do lewej, prawej, środka, czy też wyjustowany (wyrównany do obu marginesów).
Działa ona na elementy liniowe (inline) i tekst znajdujące się wewnątrz kontenera blokowego, do którego zastosowano tę właściwość.
Wartości dla text-align
Najczęściej używane wartości dla text-align
to:
left
: Wyrównuje tekst do lewej krawędzi kontenera. Jest to **wartość domyślna** dla języków pisanych od lewej do prawej (jak polski czy angielski).right
: Wyrównuje tekst do prawej krawędzi kontenera. Domyślna dla języków pisanych od prawej do lewej (jak arabski czy hebrajski).center
: Wyśrodkowuje tekst w poziomie wewnątrz kontenera.justify
: Justuje tekst, czyli wyrównuje go jednocześnie do lewej i prawej krawędzi kontenera poprzez dostosowanie odstępów między słowami i/lub literami. Ostatnia linia akapitu jest zazwyczaj wyrównywana do lewej (lub zgodnie z kierunkiem tekstu).
Istnieją również wartości związane z kierunkiem tekstu (start
, end
), które są bardziej elastyczne w kontekście internacjonalizacji, ale left
, right
, center
i justify
są najpowszechniejsze.
.do-lewej {
text-align: left;
}
.do-prawej {
text-align: right;
}
.do-srodka {
text-align: center;
}
.justowany {
text-align: justify;
}
/* Przykład zastosowania */
h1 {
text-align: center; /* Wyśrodkowanie głównego nagłówka */
}
p {
text-align: justify; /* Justowanie tekstu w akapitach */
}
.podpis-obrazka {
text-align: right; /* Podpis wyrównany do prawej */
font-size: 0.9rem;
color: gray;
}
Jak działa text-align
?
- Właściwość
text-align
stosuje się do **elementu blokowego** (np.<p>
,<div>
,<h1>
). - Wpływa ona na wyrównanie **treści liniowej (inline content)** wewnątrz tego bloku. Treść liniowa obejmuje tekst oraz elementy inline (np.
<span>
,<a>
,<img>
,<strong>
). text-align
**nie służy** do wyrównywania samych elementów blokowych względem ich rodzica. Do tego celu używa się innych technik, np. ustawienia marginesów (margin: 0 auto;
dla centrowania bloku) lub Flexbox/Grid.
Przykład: Centrowanie obrazka
Jeśli obrazek (<img>
, który jest elementem inline lub inline-block) znajduje się wewnątrz diva, można go wycentrować, stosując text-align: center;
do tego diva.
<div class="kontener-obrazka">
<img src="logo.png" alt="Logo">
</div>
.kontener-obrazka {
text-align: center; /* Wyśrodkuje obrazek (element inline-block) wewnątrz diva */
border: 1px solid lightgray; /* Dla wizualizacji */
}
.kontener-obrazka img {
/* display: inline-block; jest domyślne dla img, ale można jawnie ustawić */
}
Uwagi dotyczące justowania (justify
)
Justowanie tekstu (text-align: justify;
) może wyglądać estetycznie w druku, ale w internecie bywa problematyczne:
- "Rzeki" spacji: Aby wyrównać tekst do obu marginesów, przeglądarka musi rozciągać odstępy między słowami. W wąskich kolumnach lub przy długich słowach może to prowadzić do powstawania dużych, nieregularnych przerw między słowami (tzw. "rzek"), które utrudniają czytanie.
- Czytelność: Niektórzy użytkownicy, zwłaszcza osoby z dysleksją, mogą mieć większe trudności z czytaniem tekstu justowanego niż wyrównanego do lewej (który ma stałe odstępy między słowami i "poszarpany" prawy margines).
- Dzielenie wyrazów: Efekt justowania można poprawić, stosując mechanizmy dzielenia wyrazów (CSS
hyphens
), ale ich wsparcie i implementacja mogą się różnić.
Z tych powodów, wielu projektantów preferuje wyrównanie tekstu do lewej (text-align: left;
) dla dłuższych bloków tekstu na stronach internetowych, rezerwując justowanie dla specyficznych przypadków lub projektów przypominających układ gazetowy.
Zadania praktyczne
Zadanie 1 (z rozwiązaniem)
Wyśrodkuj wszystkie nagłówki poziomu drugiego (h2
) na stronie.
Rozwiązanie:
CSS:
h2 {
text-align: center;
}
Efekt: Tekst we wszystkich elementach h2
zostanie wyśrodkowany w poziomie.
Zadanie 2 (do samodzielnego wykonania)
Masz długi akapit tekstu (<p>
). Zastosuj do niego text-align: justify;
. Następnie zmień szerokość okna przeglądarki lub kontenera, w którym znajduje się akapit, i zaobserwuj, jak zmieniają się odstępy między słowami. Czy pojawiają się "rzeki"?
Zadanie 3 (do samodzielnego wykonania)
Stwórz element div
zawierający krótki tekst i link (<a>
). Użyj text-align: right;
, aby wyrównać zarówno tekst, jak i link do prawej strony diva.
FAQ - Najczęściej zadawane pytania
Jak wyśrodkować element blokowy (np. div
) na stronie?
text-align: center;
służy do centrowania treści *wewnątrz* bloku. Aby wycentrować sam element blokowy, który ma określoną szerokość (mniejszą niż 100%), najczęściej używa się automatycznych marginesów poziomych: margin-left: auto; margin-right: auto;
(lub skróconego zapisu margin: 0 auto;
, jeśli marginesy pionowe mają wynosić 0).
Czy text-align
działa na elementy Flexbox lub Grid?
text-align
nadal działa na treść tekstową *wewnątrz* elementu, który jest elementem flex lub grid. Jednak do wyrównywania samych elementów flex/grid *wewnątrz* ich kontenera służą dedykowane właściwości Flexbox (np. justify-content
, align-items
) lub Grid (np. justify-items
, align-items
).
Jaka jest różnica między text-align: left;
a text-align: start;
?
W językach pisanych od lewej do prawej (LTR), left
i start
działają tak samo. W językach pisanych od prawej do lewej (RTL), left
nadal wyrównuje do lewej, podczas gdy start
wyrównuje do początku tekstu, czyli do prawej. Używanie start
i end
jest bardziej elastyczne przy tworzeniu stron wielojęzycznych.
Czy justowanie (justify
) jest złe dla SEO?
Nie, samo justowanie tekstu nie ma bezpośredniego wpływu na SEO. Jednak jeśli prowadzi do słabej czytelności i wysokiego współczynnika odrzuceń (użytkownicy szybko opuszczają stronę), może to pośrednio negatywnie wpłynąć na ocenę strony przez wyszukiwarki.