Co robi znacznik span
<span> obejmuje fragment tekstu w linii, żeby dało się go ostylować albo znaleźć w JavaScript. To bliźniak <div> w wersji inline: nie ma znaczenia ani domyślnego wyglądu i nie zaczyna nowej linii.
Zdanie zostaje w jednej linii. Zmieniają się tylko objęte słowa.
div vs span
Oba mają identyczne przeznaczenie (kontener bez znaczenia), a różnią się tym, jak układają się na stronie:
Div dzieli zdanie na trzy linie i rozciąga się na całą szerokość strony; span zostaje w zdaniu i przylega do swojego tekstu.
<div> | <span> | |
|---|---|---|
| Wyświetlanie | Blokowe | Inline |
| Zaczyna nową linię | Tak | Nie |
| Szerokość | Cała dostępna szerokość | Tak szeroki jak jego treść |
width, height, pionowy margines | Stosowane | Ignorowane |
| Może zawierać | Wszystko, łącznie z blokami | Tylko tekst i elementy inline |
| Typowe użycie | Sekcje, karty, opakowania układu | Słowo lub wyrażenie w tekście |
Jeszcze jedna różnica: <div> nie może być wewnątrz <p>, a jeśli spróbujesz, przeglądarka wcześniej zamknie akapit, natomiast span może stać wszędzie tam, gdzie tekst. Więcej na ten temat na stronie o div.
Stylowanie spana: co działa, a co nie
Kolor, czcionka, tło i poziomy padding działają na spanie. Rozmiar nie: element inline ignoruje width, height oraz górne i dolne marginesy. Zmień go na inline-block, żeby nadać mu rozmiar i zostawić go w linii:
Pierwszy span jest tak szeroki jak jego słowa. Drugi ma dokładnie 120 na 40 pikseli i nadal stoi w zdaniu.
Spany w JavaScript
Span to typowe miejsce na wartość, którą wypełnia skrypt, na przykład licznik albo nazwę użytkownika:
Zmienia się tylko liczba; reszta zdania pozostaje nietknięta.
Kiedy konkretny znacznik jest lepszy niż span
Span nie ma znaczenia, więc czytnik ekranu czyta go jak zwykły tekst. Gdy słowa pełnią jakąś rolę, użyj znacznika dla tej roli i ostyluj go, jak chcesz:
| Znaczenie | Użyj zamiast spana |
|---|---|
| Ważny tekst | <strong> |
| Akcent, emfaza | <em> |
| Wyróżniony lub zaznaczony tekst | <mark> |
| Kod, nazwa pliku | <code> |
| Klawisz klawiatury | <kbd> |
| Data lub godzina | <time datetime="2026-09-24"> |
| Tekst w innym języku | <span lang="fr"> (span plus atrybut lang) |
Strona o pogrubieniu wyjaśnia różnicę między <strong>, <b>, <em> i <i>.
Częste błędy
- Ustawianie
widthna zwykłym spanie. Jest ignorowane. Użyjdisplay: inline-block. - Wstawianie diva albo akapitu do spana. Niepoprawny HTML, który łamie linię. Zamień zewnętrzny span na div.
- Klikalne spany. Tak jak do diva, do spana z
onclicknie da się dotrzeć klawiaturą. Użyj<button>albo linku. - Span dla każdego stylu. Jeśli całe akapity albo sekcje potrzebują stylu, umieść klasę na samym
<p>lub kontenerze, zamiast obejmować jego tekst spanem.
Najczęściej zadawane pytania
Czym jest span w HTML?
<span> to ogólny kontener inline. Obejmuje część linii tekstu, na przykład jedno słowo, żeby CSS albo JavaScript mogły się do niej odwołać, i nie ma własnego wyglądu ani znaczenia.
Czym różni się div od span?
<div> to blok: zaczyna się w nowej linii i zajmuje pełną szerokość. <span> jest inline: zostaje w linii tekstu i jest tak szeroki jak jego treść. Używaj div do grupowania bloków treści, a span do oznaczania słów w tekście.
Dlaczego width nie działa na moim spanie?
Elementy inline ignorują width, height i pionowe marginesy. Nadaj spanowi display: inline-block, żeby został w linii i przyjął rozmiar, albo display: block, żeby zachowywał się jak div.
Jak zmienić kolor jednego słowa w HTML?
Obejmij słowo spanem z klasą i nadaj mu kolor w CSS: <span class="accent">word</span> z .accent { color: #2563eb; }. Przy jednorazowej zmianie działa też <span style="color: #2563eb">word</span>.
Czy span może zawierać div?
Nie. Span może zawierać tylko treść inline, taką jak tekst, linki, obrazki i inne spany. Przeglądarki i tak wyświetlą div w spanie, ale to niepoprawny HTML, który łamie linię, więc zmień zewnętrzny element na div.