Semantiske HTML5-elementer

Lær hvordan du bruker semantiske elementer for å gi nettsiden din bedre struktur og mening

Hva er semantiske elementer?

Semantiske elementer er HTML-elementer som har en meningsfull betydning i koden. De beskriver tydelig hva slags innhold de inneholder, i motsetning til generiske elementer som <div> og <span>.

Fordeler med semantiske elementer:
  • Bedre lesbarhet og vedlikeholdbarhet av koden
  • Økt tilgjengelighet for skjermlesere
  • Forbedret SEO og søkemotorrangering
  • Tydeligere struktur og organisering av innhold

Vanlige semantiske elementer

<header>

Brukes for å definere toppen av en side eller en seksjon. Inneholder ofte logo, navigasjon og overskrifter.

<header>
    <h1>Min nettside</h1>
    <nav>
        <ul>
            <li><a href="#">Hjem</a></li>
            <li><a href="#">Om oss</a></li>
        </ul>
    </nav>
</header>

<nav>

Definerer et navigasjonsområde med lenker til andre sider eller seksjoner.

<nav class="hovedmeny">
    <ul>
        <li><a href="/">Hjem</a></li>
        <li><a href="/produkter">Produkter</a></li>
        <li><a href="/kontakt">Kontakt</a></li>
    </ul>
</nav>

<main>

Inneholder hovedinnholdet på siden. Det bør kun være ett <main>-element per side.

<main>
    <h1>Velkommen til min nettside</h1>
    <article>
        <h2>Min første artikkel</h2>
        <p>Dette er hovedinnholdet i artikkelen.</p>
    </article>
</main>

<article>

Brukes for selvstendig innhold som kan stå alene, som blogginnlegg, nyhetsartikler eller kommentarer.

<article>
    <h2>Artikkel tittel</h2>
    <p>Artikkel innhold...</p>
    <footer>
        <p>Skrevet av: Forfatter</p>
    </footer>
</article>

<section>

Brukes for å gruppere relatert innhold. Bør vanligvis ha en overskrift.

<section>
    <h2>Våre tjenester</h2>
    <p>Vi tilbyr følgende tjenester...</p>
</section>

<aside>

Brukes for innhold som er relatert til hovedinnholdet, men som kan sees som separat, som sidebarer eller annonser.

<aside>
    <h3>Relaterte artikler</h3>
    <ul>
        <li>Artikkel 1</li>
        <li>Artikkel 2</li>
    </ul>
</aside>

<footer>

Definerer bunnen av en side eller en seksjon. Inneholder ofte kontaktinformasjon, copyright og lenker.

<footer>
    <p>© 2025 Min Nettside</p>
    <address>
        <p>Kontakt: info@minnettside.no</p>
    </address>
</footer>

Oversikt over semantiske elementer

Her er en komplett oversikt over de mest brukte semantiske HTML5-elementene:

Element Beskrivelse Bruksområde
<header> Introduserende innhold Toppbanner, innledende innhold for en artikkel eller seksjon
<nav> Navigasjonslenker Hovedmeny, sidemeny, brødsmulesti
<main> Hovedinnhold Sidens primære innhold, skal kun brukes én gang per side
<article> Selvstendig innhold Blogginnlegg, nyhetsartikler, produktbeskrivelser
<section> Tematisk gruppering Kapitler, faner, nummererte seksjoner
<aside> Sekundært innhold Sidebarer, annonser, relaterte artikler
<footer> Avsluttende innhold Bunntekst, copyright, kontaktinformasjon
<figure> Selvstendig innhold med bildetekst Bilder, diagrammer, kodeeksempler med forklaring
<figcaption> Bildetekst for figure Beskrivelse eller forklaring av figure-elementet
<time> Tidsangivelse Datoer, klokkeslett, tidsperioder
<mark> Uthevet tekst Søkeresultater, viktige deler av tekst
<details> Utvidbart innhold FAQ, accordion-menyer, skjulbart innhold
<summary> Overskrift for details Klikkbar overskrift som viser/skjuler innhold
<address> Kontaktinformasjon E-postadresser, fysiske adresser, telefonnumre

Før og etter sammenligning

Her er et eksempel på hvordan semantiske elementer kan forbedre kodestrukturen:

Ikke-semantisk HTML

<div class="header">
    <div class="nav">
        <!-- Navigasjon -->
    </div>
</div>

<div class="main">
    <div class="article">
        <!-- Innhold -->
    </div>
</div>

<div class="footer">
    <!-- Bunntekst -->
</div>

Semantisk HTML

<header>
    <nav>
        <!-- Navigasjon -->
    </nav>
</header>

<main>
    <article>
        <!-- Innhold -->
    </article>
</main>

<footer>
    <!-- Bunntekst -->
</footer>