Menu

Znacznik span w HTML: stylowanie fragmentu tekstu i div vs span

Znacznik <span> to ogólny kontener inline: obejmuje kilka słów w linii, żeby dało się je ostylować albo obsłużyć skryptem bez łamania linii. Dowiedz się, jak go używać, czym różni się od div i kiedy lepiej pasuje bardziej konkretny znacznik.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

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świetlanieBlokoweInline
Zaczyna nową linięTakNie
SzerokośćCała dostępna szerokośćTak szeroki jak jego treść
width, height, pionowy marginesStosowaneIgnorowane
Może zawieraćWszystko, łącznie z blokamiTylko tekst i elementy inline
Typowe użycieSekcje, karty, opakowania układuSł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:

ZnaczenieUż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 width na zwykłym spanie. Jest ignorowane. Użyj display: 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 onclick nie 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.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ