Kurs HTML

Lekcja 9.1: Wprowadzenie do znaczników semantycznych HTML5

Strona główna > Rozdział 9: Elementy semantyczne > Wprowadzenie do znaczników semantycznych

Co to jest semantyka w HTML?

Semantyka w kontekście HTML odnosi się do znaczenia poszczególnych elementów kodu, a nie tylko do ich wyglądu. Używanie znaczników semantycznych oznacza wybieranie elementów HTML, które dokładnie opisują rodzaj zawartości, jaką obejmują.

Przed HTML5, struktura strony była często budowana głównie za pomocą generycznych znaczników <div> z różnymi atrybutami id lub class (np. <div id="header">, <div class="sidebar">). Chociaż to działało, kod był mniej czytelny dla programistów i, co ważniejsze, dla maszyn (takich jak wyszukiwarki internetowe czy czytniki ekranu).

HTML5 wprowadził szereg nowych znaczników, które mają jasno określone znaczenie semantyczne, pozwalając lepiej opisać strukturę dokumentu.

Dlaczego warto używać znaczników semantycznych?

Główne znaczniki semantyczne HTML5

Oto najważniejsze nowe znaczniki strukturalne wprowadzone w HTML5:

Przykład struktury strony z użyciem znaczników semantycznych:

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>Strona Semantyczna</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>

    <header> <!-- Nagłówek całej strony -->
        <h1>Moja Strona</h1>
        <nav> <!-- Główna nawigacja -->
            <ul>
                <li><a href="/">Start</a></li>
                <li><a href="/o-nas">O nas</a></li>
                <li><a href="/kontakt">Kontakt</a></li>
            </ul>
        </nav>
    </header>

    <main> <!-- Główna treść strony -->
        <article> <!-- Samodzielny artykuł -->
            <header> <!-- Nagłówek artykułu -->
                <h2>Tytuł Artykułu</h2>
                <p>Opublikowano: <time datetime="2025-04-29">29 kwietnia 2025</time></p>
            </header>
            
            <p>Pierwszy akapit treści artykułu...</p>
            
            <section> <!-- Sekcja wewnątrz artykułu -->
                <h3>Podtytuł sekcji</h3>
                <p>Treść tej sekcji...</p>
                <figure>
                    <img src="obrazek.jpg" alt="Opis obrazka">
                    <figcaption>Podpis pod obrazkiem.</figcaption>
                </figure>
            </section>
            
            <footer> <!-- Stopka artykułu -->
                <p>Tagi: html, semantyka, webdev</p>
            </footer>
        </article>
        
        <aside> <!-- Panel boczny -->
            <h3>Powiązane linki</h3>
            <ul>
                <li><a href="#">Link 1</a></li>
                <li><a href="#">Link 2</a></li>
            </ul>
        </aside>
    </main>

    <footer> <!-- Stopka całej strony -->
        <p>© 2025 Moja Strona. Wszelkie prawa zastrzeżone.</p>
        <p><a href="/polityka-prywatnosci">Polityka prywatności</a></p>
    </footer>

</body>
</html>

Ten przykład pokazuje typowy układ strony z wykorzystaniem głównych znaczników semantycznych. Zwróć uwagę, jak <header> i <footer> są używane zarówno dla całej strony, jak i dla elementu <article>.

Kiedy używać <section>, a kiedy <article>?

Rozróżnienie między <section> a <article> bywa czasem trudne:

Często <article> zawiera w sobie elementy <section>.

Zadanie praktyczne (z rozwiązaniem)

Zadanie: Przeanalizuj strukturę typowej strony z wiadomościami (np. portal informacyjny). Zidentyfikuj, które części strony odpowiadałyby znacznikom: <header>, <nav>, <main>, <article> (dla pojedynczej wiadomości), <aside> (np. panel z najnowszymi wiadomościami lub reklamami), <footer>.

Rozwiązanie (przykładowa analiza):

Dodatkowe zadania do samodzielnego wykonania:

  1. Stwórz szkielet HTML prostej strony portfolio, używając znaczników semantycznych (header, nav, main, section dla projektów, footer).
  2. Wewnątrz sekcji projektu użyj <figure> i <figcaption> do opisania zrzutu ekranu projektu.
  3. Dodaj znacznik <time> z atrybutem datetime do oznaczenia daty publikacji projektu.

Najczęściej zadawane pytania

Co to są znaczniki semantyczne HTML?

Są to elementy HTML, które opisują znaczenie lub cel zawartej w nich treści, a nie tylko jej wygląd. Przykłady to <header>, <nav>, <article>, <footer>.

Dlaczego używanie semantyki w HTML jest ważne?

Poprawia SEO (wyszukiwarki lepiej rozumieją stronę), zwiększa dostępność (czytniki ekranu łatwiej nawigują), czyni kod bardziej czytelnym i łatwiejszym w utrzymaniu.

Do czego służy znacznik <main>?

Znacznik <main> powinien zawierać główną, unikalną treść danej strony. Na stronie powinien znajdować się tylko jeden element <main>.

Kiedy użyć <article>, a kiedy <section>?

Użyj <article> dla samodzielnej treści, która ma sens w oderwaniu od reszty (np. post na blogu). Użyj <section> do grupowania powiązanych tematycznie treści w ramach większej całości.

Czy znaczniki semantyczne wpływają na wygląd strony?

Domyślnie większość znaczników semantycznych (jak <header>, <nav>, <main>, <article>, <section>, <aside>, <footer>) zachowuje się jak zwykłe bloki <div>. Ich wygląd kontroluje się za pomocą CSS.