Jak zmienić kolor tekstu w HTML
Użyj właściwości CSS color. Ustala kolor tekstu elementu, a każdy element w jego wnętrzu dziedziczy ten sam kolor, chyba że ustawi własny.
Właściwość nazywa się color, a nie font-color ani text-color. Tych nazw nie ma w CSS i są po cichu ignorowane.
Dlaczego nie znacznik font
Stare poradniki pokazują <font color="red">. Ten znacznik usunięto z HTML lata temu: walidatory oznaczają go jako błąd, a do tego miesza stylizację ze strukturą, więc zmiana koloru oznacza ręczną edycję każdego znacznika. Przeglądarki nadal go rysują dla zgodności i tylko dlatego wydaje się, że działa.
<!-- obsolete -->
<font color="red">Warning</font>
<!-- use this -->
<span style="color: red;">Warning</span>
<!-- or better, a class you can change in one place -->
<span class="warning">Warning</span>
Sposoby zapisu koloru
color przyjmuje każdy format koloru w CSS. Cztery najczęstsze:
| Format | Przykład | Uwagi |
|---|---|---|
| Nazwa | color: tomato; | 148 nazwanych kolorów, wygodnych do szybkich testów |
| Hex | color: #2563eb; | Najczęstszy w plikach projektowych |
| rgb() | color: rgb(37 99 235); | Czerwony, zielony i niebieski od 0 do 255 |
| hsl() | color: hsl(221 83% 53%); | Odcień, nasycenie, jasność: łatwo rozjaśnić lub przyciemnić |
Hex, rgb() i hsl() mogą mieć kanał alfa dla półprzezroczystego tekstu, na przykład #2563eb80 albo rgb(37 99 235 / 50%). Strona o kolorach CSS wyjaśnia każdy format.
Kolorowanie całej strony, nagłówka lub sekcji
Ustaw kolor raz na body i pozwól dziedziczeniu zrobić resztę, a potem nadpisuj tam, gdzie trzeba:
Łagodna, prawie czarna barwa, taka jak #111827 albo #374151, na białym tle jest przyjemniejsza dla oczu niż czysty #000000, a nadal odbiera się ją jako czerń.
Kolory linków
Linki są wyjątkiem od dziedziczenia: przeglądarka nadaje im własny niebieski (i fioletowy po odwiedzeniu), więc kolor na rodzicu do nich nie dociera. Ustaw go na linku albo każ linkowi dziedziczyć:
:hover, :visited i :focus-visible pozwalają zmieniać kolor w zależności od stanu; omawia je strona o hover. Gdy link ma ten sam kolor co otaczający tekst, zachowaj jego podkreślenie, żeby nadal było widać, że to link.
Zadbaj o czytelność: kontrast
Kolor tekstu to tylko połowa pary; drugą połową jest tło. WCAG wymaga współczynnika kontrastu co najmniej 4.5:1 dla zwykłego tekstu i 3:1 dla dużego tekstu (około 24px albo 19px pogrubione).
Jasnoszary tekst w stylu placeholdera to najczęstszy problem. Narzędzia deweloperskie Chrome i Firefoksa pokazują współczynnik kontrastu, gdy sprawdzasz kolor tekstu.
currentColor: ponowne użycie koloru tekstu
currentColor to słowo kluczowe równe wartości color elementu. Mogą go używać obramowania, obwódki i ikony SVG wstawione w kod, więc jedna zmiana color zmienia kolor tekstu i jego ozdób naraz:
Częste błędy
- Pisanie
font-coloralbotext-color. Właściwość tocolor. - Używanie znacznika
<font>. Jest przestarzały; użyj CSS. - Oczekiwanie, że linki odziedziczą kolor. Ustaw
a { color: ... }albocolor: inherit. - Kolor jako jedyny sygnał. "Pola na czerwono są wymagane" nie działa dla czytelników, którzy nie rozróżniają czerwieni. Dodaj tekst albo ikonę.
- Szary tekst o niskim kontraście. Sprawdź współczynnik: 4.5:1 lub więcej dla tekstu głównego.
- Rozjaśnianie tekstu przez
opacity. Wygasza cały element, łącznie z tłem i dziećmi. Zamiast tego użyj jaśniejszego koloru albo koloru z kanałem alfa.
Najczęściej zadawane pytania
Jak zmienić kolor czcionki w HTML?
Użyj właściwości CSS color, w arkuszu stylów albo w atrybucie style: <p style="color: #2563eb;">Blue text</p>. Stary znacznik <font color> jest przestarzały.
Czy znacznik <font> jest nadal obsługiwany?
Przeglądarki nadal go rysują, żeby bardzo stare strony dalej działały, ale w HTML jest przestarzały, a walidatory zgłaszają go jako błąd. Zamiast niego używaj CSS color.
Jak zmienić kolor jednego słowa?
Otocz słowo znacznikiem <span> i nadaj mu kolor: This is <span style="color: #dc2626;">red</span>. Użyj <strong> albo <em> zamiast <span>, jeśli słowo jest też ważne lub zaakcentowane.
Dlaczego link nie zmienia koloru, gdy ustawiam color na rodzicu?
Linki mają własny kolor z arkusza stylów przeglądarki, więc nie dziedziczą koloru rodzica. Ustaw go na samym linku (a { color: #2563eb; }) albo użyj a { color: inherit; }, żeby podążał za rodzicem.
W CSS pisze się font-color czy color?
Pisze się color. Nie istnieje właściwość font-color ani text-color; przeglądarka je ignoruje.