Menu

Znaczniki HTML: otwierające, zamykające, puste i zagnieżdżanie

Znaczniki HTML oznaczają treść, żeby przeglądarka wiedziała, czym jest każda część: nagłówkiem, akapitem, linkiem, obrazkiem. Dowiedz się, jak działają znaczniki i elementy, które znaczniki nie mają znacznika zamykającego, jak działa zagnieżdżanie i których znaczników użyjesz najczęściej.

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

Czym jest znacznik HTML

Znacznik HTML to nazwa w nawiasach ostrych, która oznacza fragment treści. Większość znaczników występuje w parach: znacznik otwierający, na przykład <p>, i znacznik zamykający z ukośnikiem, na przykład </p>. Wszystko pomiędzy nimi to treść, a cały pakiet to element.

Zmień <h1> na <h2> (zarówno znacznik otwierający, jak i zamykający), a nagłówek się zmniejszy. To nazwa znacznika mówi przeglądarce, czym jest treść.

Anatomia: znaczniki, atrybuty i elementy

<a href="/docs/html/links" class="nav">Links</a>
CzęśćW przykładzie
Znacznik otwierający<a href="/docs/html/links" class="nav">
Nazwa znacznikaa
Atrybutyhref="/docs/html/links" i class="nav"
TreśćLinks
Znacznik zamykający</a>
Elementwszystko powyższe razem

Atrybuty zawsze trafiają do znacznika otwierającego, nigdy do zamykającego. Opisuje je strona o atrybutach.

W nazwach znaczników wielkość liter nie ma znaczenia: <P> i <p> to to samo. Pisz je małymi literami.

Znaczniki puste: bez znacznika zamykającego

Niektóre elementy nie mogą niczego zawierać, więc mają tylko znacznik otwierający. Nazywa się je elementami pustymi (void elements; mówi się też o znacznikach samozamykających się):

Pełna lista: area, base, br, col, embed, hr, img, input, link, meta, source, track, wbr.

Możesz je zapisać jako <br /> z ukośnikiem. W HTML ukośnik nic nie robi; jest dozwolony, żeby kod w stylu XHTML dalej działał. Ukośnik w zwykłym znaczniku, jak <div />, też jest ignorowany, co oznacza, że div nadal jest otwarty.

Zagnieżdżanie znaczników

Elementy umieszcza się w innych elementach. Zasada brzmi: zamykaj znaczniki w odwrotnej kolejności niż je otwierasz. Ostatni otwarty zamyka się jako pierwszy.

<p>This is <strong>very <em>important</em></strong>.</p>   <!-- correct -->
<p>This is <strong>very <em>important</strong></em>.</p>   <!-- wrong -->

Przeglądarki nie odrzucają błędnego zagnieżdżenia. Naprawiają je, a naprawa nie zawsze jest tym, o co chodziło. Ten przykład przekazuje parserowi przeglądarki dwa źle zagnieżdżone fragmenty i wypisuje strukturę, którą faktycznie zbudował:

Zachodzą dwie naprawy. Nakładające się <b> i <i> zostają podzielone na dodatkowe elementy. A <p> nie może zawierać <div>, więc przeglądarka zamyka akapit przed divem, a zbłąkany </p> zamienia w nowy, pusty akapit. Gdy CSS albo JavaScript zachowują się dziwnie, błędne zagnieżdżenie to jedna z pierwszych rzeczy do sprawdzenia.

Elementy blokowe i inline

Większość znaczników należy do jednej z dwóch grup wyświetlania. Elementy blokowe (div, p, od h1 do h6, ul, section) zaczynają się w nowej linii i zajmują pełną szerokość. Elementy inline (span, a, strong, em, code) stoją w linii tekstu i są tak szerokie jak ich treść.

Niebieskie pola rozciągają się na całą szerokość strony; bursztynowe obejmują tylko swój tekst. CSS może to zmienić właściwością display, ale każdy znacznik zaczyna od swojej wartości domyślnej. Zobacz div i span, dwa ogólne kontenery.

Najczęściej używane znaczniki HTML

ZnacznikPrzeznaczenie
<html>, <head>, <body>Szkielet dokumentu
<title>, <meta>, <link>Informacje o stronie w head
Od <h1> do <h6>Nagłówki
<p>Akapit
<a>Link
<img>Obrazek
<ul>, <ol>, <li>Listy
<strong>, <em>Tekst ważny i akcentowany
<br>, <hr>Nowa linia, podział tematyczny
<div>, <span>Ogólne kontenery blokowy i inline
<table>, <tr>, <th>, <td>Tabele
<form>, <input>, <label>, <button>Formularze
<header>, <nav>, <main>, <footer>, <section>, <article>Struktura strony ze znaczeniem

Listę na jedną stronę do wydrukowania znajdziesz w ściągawce HTML.

Znaczniki, które nie istnieją

Jeśli wpiszesz znacznik, którego przeglądarka nie zna, nie będzie błędu. Utworzy nieznany element, pokaże jego treść i potraktuje go jak element inline:

Nieznany znacznik nie ma znaczenia dla wyszukiwarek ani czytników ekranu, więc wybieraj prawdziwe znaczniki. Jeśli budujesz własny komponent w JavaScript, nadaj mu nazwę z łącznikiem (user-badge): nazwy z łącznikiem są zarezerwowane dla własnych elementów i nigdy nie kolidują z przyszłymi znacznikami HTML.

Częste błędy

  • Brak znacznika zamykającego. Brakujący </a> albo </strong> zamienia resztę strony w link albo pogrubiony tekst. Przeglądarki zamykają niektóre znaczniki za ciebie (</p>, </li>), ale nie te.
  • Zamykanie znacznika pustego. </br> i </img> są niepoprawne. Przeglądarki czytają nawet </br> jako otwierające <br>, więc <br></br> daje dwie nowe linie.
  • Nakładające się znaczniki. Zamykaj w odwrotnej kolejności: <b><i>x</i></b>, nigdy <b><i>x</b></i>.
  • Blok wewnątrz akapitu. <div>, lista albo nagłówek w <p> wcześniej kończą akapit. Użyj <div> jako zewnętrznego kontenera.
  • Wybieranie znaczników dla wyglądu. Użyj <h2>, bo to nagłówek, a nie dlatego, że jest duży. Rozmiar i grubość należą do CSS.

Najczęściej zadawane pytania

Czym różni się znacznik HTML od elementu HTML?

Znacznik to kod, który wpisujesz, na przykład <p> albo </p>. Element to całość, którą przeglądarka z niego buduje: znacznik otwierający, jego atrybuty, treść i znacznik zamykający. <p>Hi</p> to dwa znaczniki, które tworzą jeden element p.

Które znaczniki HTML nie potrzebują znacznika zamykającego?

Elementy puste (void) nie mogą mieć treści, więc nie mają znacznika zamykającego: <br>, <hr>, <img>, <input>, <meta>, <link>, <source>, <track>, <wbr>, <area>, <base>, <col> i <embed>.

Pisać <br> czy <br />?

Oba zapisy to poprawny HTML. Ukośnik na końcu jest dozwolony w elementach pustych i przeglądarka go ignoruje. W znaczniku niepustym, takim jak <div />, ukośnik też jest ignorowany, więc div pozostaje otwarty aż do </div>.

Czy w znacznikach HTML liczy się wielkość liter?

Nie. <P> i <p> dają ten sam element, podobnie jak każda mieszanka wielkich i małych liter. Standardowym stylem są małe litery i to one pojawiają się w wyniku większości formaterów.

Ile jest znaczników HTML?

Obecny standard HTML definiuje ponad 100 elementów, ale codzienne strony używają około 20 do 30 z nich: nagłówków, akapitów, linków, obrazków, list, div, span, formularzy i semantycznych znaczników układu.

Co się stanie, jeśli użyję znacznika, który nie istnieje?

Przeglądarka i tak utworzy dla niego element, wyświetli jego treść i potraktuje go jak element inline bez szczególnego znaczenia. Własne elementy są dozwolone, jeśli nazwa zawiera łącznik, na przykład <user-card>.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ