Skip to main content
Mediaweb Logo

Mediaweb

Html Guide

Lister i HTML: Ordnede, uordnede og definitionslister forklaret

Mestre HTML-lister med denne komplette guide, der dækker ul-, ol- og dl-elementer, indlejringsteknikker, styling med CSS og bedste praksis for tilgængelighed.

September 4, 2025
8 min læsning
HTML
lister
ul
ol
dl
indlejrede lister
CSS-styling

Forståelse af HTML-listetyper

HTML tilbyder tre hovedtyper af lister, hver med forskellige formål:

  1. Uordnede lister (<ul>) - For elementer uden en specifik rækkefølge
  2. Ordnede lister (<ol>) - For sekventielle eller rangerede elementer
  3. Definitionslister (<dl>) - For term-definitions par

Lad os udforske hver type i detaljer.

<ul>-elementet til punktlister

Uordnede lister er perfekte til at gruppere relaterede elementer, hvor rækkefølgen ikke betyder noget. De bruges almindeligvis til navigationsmenuer, funktionslister og generel indholdsorganisation.

Grundlæggende uordnet liste syntaks

<ul>
  <li>Første element</li>
  <li>Andet element</li>
  <li>Tredje element</li>
</ul>

Eksempler fra den virkelige verden

Navigationsmenu:

<nav>
  <ul>
    <li><a href="/">Hjem</a></li>
    <li><a href="/om">Om</a></li>
    <li><a href="/tjenester">Tjenester</a></li>
    <li><a href="/kontakt">Kontakt</a></li>
  </ul>
</nav>

Funktionsliste:

<ul>
  <li>Responsivt design</li>
  <li>Hurtige indlæsningstider</li>
  <li>SEO-optimeret</li>
  <li>Mobilvenlig</li>
  <li>Kompatibel på tværs af browsere</li>
</ul>

Indkøbsliste:

<ul>
  <li>Mælk</li>
  <li>Brød</li>
  <li>Æg</li>
  <li>Ost</li>
  <li>Æbler</li>
</ul>

Uordnede liste attributter

Selvom moderne CSS håndterer det meste styling, kan du stadig bruge type-attributten:

<ul type="disc">   <!-- Standard: fyldte cirkler -->
<ul type="circle"> <!-- Tomme cirkler -->
<ul type="square"> <!-- Fyldte firkanter -->

Bemærk: type-attributten er forældet i HTML5. Brug CSS i stedet for styling.

<ol>-elementet til nummererede lister

Ordnede lister er ideelle, når sekvensen eller rangeringen af elementer betyder noget. De er perfekte til instruktioner, rangeringer og trin-for-trin processer.

Grundlæggende ordnet liste syntaks

<ol>
  <li>Første trin</li>
  <li>Andet trin</li>
  <li>Tredje trin</li>
</ol>

Ordnede liste attributter

Start-attribut:

<ol start="5">
  <li>Femte element</li>
  <li>Sjette element</li>
  <li>Syvende element</li>
</ol>

Type-attribut:

<ol type="1">  <!-- 1, 2, 3 (standard) -->
<ol type="A">  <!-- A, B, C -->
<ol type="a">  <!-- a, b, c -->
<ol type="I">  <!-- I, II, III -->
<ol type="i">  <!-- i, ii, iii -->

Reversed-attribut:

<ol reversed>
  <li>Tredjeplads</li>
  <li>Andenplads</li>
  <li>Førsteplads</li>
</ol>
<!-- Vises som: 3. Tredjeplads, 2. Andenplads, 1. Førsteplads -->

Eksempler fra den virkelige verden

Opskriftsinstruktioner:

<h3>Sådan laver du chokoladechip cookies</h3>
<ol>
  <li>Forvarm ovnen til 190°C</li>
  <li>Bland mel, bagepulver og salt i en skål</li>
  <li>Pisk smør og sukker i en separat skål</li>
  <li>Tilføj æg og vanilje til smørblandingen</li>
  <li>Bland gradvist melblandingen ind</li>
  <li>Rør chokoladechips i</li>
  <li>Drop afrundede spiseskefulde på usmurte bageplader</li>
  <li>Bag i 9-11 minutter indtil de er gyldne</li>
</ol>

Top 5 programmeringssprog:

<h3>Mest populære programmeringssprog 2024</h3>
<ol>
  <li>JavaScript</li>
  <li>Python</li>
  <li>Java</li>
  <li>TypeScript</li>
  <li>C#</li>
</ol>

Installationstrin:

<h3>Software installationsguide</h3>
<ol>
  <li>Download installationsprogrammet fra vores hjemmeside</li>
  <li>Kør installationsprogrammet som administrator</li>
  <li>Accepter licensaftalen</li>
  <li>Vælg installationsmappe</li>
  <li>Vælg komponenter der skal installeres</li>
  <li>Klik "Installer" og vent på færdiggørelse</li>
  <li>Genstart din computer når du bliver bedt om det</li>
</ol>

Indlejring af lister

Du kan indlejre lister inde i andre lister for at skabe hierarkiske strukturer. Dette er nyttigt til at oprette undermenuer, detaljerede oversigter og komplekse organisationsstrukturer.

Indlejring af uordnede lister

<ul>
  <li>Webudvikling
    <ul>
      <li>Frontend
        <ul>
          <li>HTML</li>
          <li>CSS</li>
          <li>JavaScript</li>
        </ul>
      </li>
      <li>Backend
        <ul>
          <li>Node.js</li>
          <li>Python</li>
          <li>PHP</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Mobiludvikling
    <ul>
      <li>iOS</li>
      <li>Android</li>
      <li>React Native</li>
    </ul>
  </li>
</ul>

Indlejring af ordnede lister

<ol>
  <li>Planlægningsfase
    <ol type="a">
      <li>Definer krav</li>
      <li>Opret wireframes</li>
      <li>Design mockups</li>
    </ol>
  </li>
  <li>Udviklingsfase
    <ol type="a">
      <li>Opsæt udviklingsmiljø</li>
      <li>Byg kernefunktionalitet</li>
      <li>Implementer brugergrænseflade</li>
    </ol>
  </li>
  <li>Testfase
    <ol type="a">
      <li>Enhedstest</li>
      <li>Integrationstest</li>
      <li>Brugeraccepttest</li>
    </ol>
  </li>
</ol>

Blandede indlejrede lister

<ol>
  <li>Morgenmadsmuligheder
    <ul>
      <li>Kornprodukter
        <ul>
          <li>Cornflakes</li>
          <li>Havregrød</li>
          <li>Granola</li>
        </ul>
      </li>
      <li>Varme muligheder
        <ul>
          <li>Pandekager</li>
          <li>Vafler</li>
          <li>Arme riddere</li>
        </ul>
      </li>
    </ul>
  </li>
  <li>Frokostmuligheder
    <ul>
      <li>Sandwiches</li>
      <li>Salater</li>
      <li>Supper</li>
    </ul>
  </li>
</ol>

Brug af <dl>, <dt> og <dd> til definitioner

Definitionslister er perfekte til ordlister, FAQ'er, produktspecifikationer og alt indhold der parrer termer med deres beskrivelser.

Definitionsliste struktur

<dl>
  <dt>Term 1</dt>
  <dd>Definition eller beskrivelse af term 1</dd>
  
  <dt>Term 2</dt>
  <dd>Definition eller beskrivelse af term 2</dd>
</dl>

Eksempler fra den virkelige verden

Ordliste:

<dl>
  <dt>HTML</dt>
  <dd>HyperText Markup Language - standardmarkeringssproget til at skabe websider</dd>
  
  <dt>CSS</dt>
  <dd>Cascading Style Sheets - bruges til at beskrive præsentationen af et dokument skrevet i HTML</dd>
  
  <dt>JavaScript</dt>
  <dd>Et programmeringssprog der muliggør interaktive websider og dynamisk indhold</dd>
  
  <dt>Responsivt design</dt>
  <dd>En tilgang til webdesign der får websider til at gengive godt på forskellige enheder og skærmstørrelser</dd>
</dl>

Produktspecifikationer:

<dl>
  <dt>Skærmstørrelse</dt>
  <dd>15,6 tommer</dd>
  
  <dt>Opløsning</dt>
  <dd>1920 x 1080 pixels</dd>
  
  <dt>Processor</dt>
  <dd>Intel Core i7-11800H</dd>
  
  <dt>Hukommelse</dt>
  <dd>16GB DDR4 RAM</dd>
  
  <dt>Lager</dt>
  <dd>512GB SSD</dd>
  
  <dt>Vægt</dt>
  <dd>1,9 kg</dd>
</dl>

FAQ-sektion:

<dl>
  <dt>Hvad er jeres returpolitik?</dt>
  <dd>Vi tilbyder en 30-dages returpolitik for alle ubrugte varer i original emballage. Returfragt betales af kunden medmindre varen var defekt.</dd>
  
  <dt>Hvor lang tid tager forsendelse?</dt>
  <dd>Standardforsendelse tager 3-5 arbejdsdage. Ekspressforsendelse tager 1-2 arbejdsdage. International forsendelse varierer efter placering.</dd>
  
  <dt>Tilbyder I kundesupport?</dt>
  <dd>Ja, vi tilbyder 24/7 kundesupport via e-mail, telefon og live chat. Vores supportteam er altid klar til at hjælpe med spørgsmål eller problemer.</dd>
</dl>

Flere beskrivelser

En term kan have flere beskrivelser:

<dl>
  <dt>JavaScript</dt>
  <dd>Et højniveau programmeringssprog</dd>
  <dd>Almindeligt brugt til webudvikling</dd>
  <dd>Understøtter objektorienterede og funktionelle programmeringsparadigmer</dd>
  
  <dt>Python</dt>
  <dd>Et fortolket højniveau programmeringssprog</dd>
  <dd>Kendt for sin enkle og læsbare syntaks</dd>
  <dd>Populært til datavidenskab, webudvikling og automatisering</dd>
</dl>

Flere termer, en beskrivelse

Flere termer kan dele samme beskrivelse:

<dl>
  <dt>Frontend</dt>
  <dt>Klientside</dt>
  <dt>Brugergrænseflade</dt>
  <dd>Den del af en hjemmeside eller applikation som brugere interagerer med direkte</dd>
  
  <dt>Backend</dt>
  <dt>Serverside</dt>
  <dd>Serverlogikken og infrastrukturen der driver en hjemmeside eller applikation</dd>
</dl>

Styling af lister med CSS

Mens HTML giver strukturen, bringer CSS lister til live med brugerdefineret styling.

Grundlæggende liste styling

/* Fjern standard styling */
ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Brugerdefinerede punkttegn */
ul li {
  position: relative;
  padding-left: 20px;
}

ul li::before {
  content: "•";
  color: #007bff;
  font-weight: bold;
  position: absolute;
  left: 0;
}

Horisontale navigationslister

.nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 20px;
}

.nav-list li {
  display: inline-block;
}

.nav-list a {
  text-decoration: none;
  color: #333;
  padding: 10px 15px;
  border-radius: 5px;
  transition: background-color 0.3s;
}

.nav-list a:hover {
  background-color: #f0f0f0;
}
<ul class="nav-list">
  <li><a href="/">Hjem</a></li>
  <li><a href="/om">Om</a></li>
  <li><a href="/tjenester">Tjenester</a></li>
  <li><a href="/kontakt">Kontakt</a></li>
</ul>

Stylede ordnede lister

.custom-ordered {
  counter-reset: item;
  padding: 0;
  list-style: none;
}

.custom-ordered li {
  counter-increment: item;
  margin-bottom: 10px;
  padding-left: 40px;
  position: relative;
}

.custom-ordered li::before {
  content: counter(item);
  background: #007bff;
  color: white;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 0;
  top: 0;
  font-weight: bold;
  font-size: 14px;
}

Definitionsliste styling

.styled-dl {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 10px 20px;
  max-width: 600px;
}

.styled-dl dt {
  font-weight: bold;
  color: #333;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}

.styled-dl dd {
  padding: 10px 0;
  margin: 0;
  border-bottom: 1px solid #eee;
  color: #666;
}

Indlejret liste styling

.nested-list {
  list-style: none;
  padding: 0;
}

.nested-list li {
  margin: 5px 0;
  padding-left: 20px;
  position: relative;
}

.nested-list > li::before {
  content: "▶";
  position: absolute;
  left: 0;
  color: #007bff;
}

.nested-list ul {
  margin-top: 10px;
  padding-left: 20px;
}

.nested-list ul li::before {
  content: "▸";
  color: #666;
}

Bedste praksis for tilgængelighed

At gøre lister tilgængelige sikrer, at alle brugere kan navigere og forstå dit indhold effektivt.

Semantisk HTML

<!-- Godt: Semantisk navigation -->
<nav aria-label="Hovednavigation">
  <ul>
    <li><a href="/" aria-current="page">Hjem</a></li>
    <li><a href="/om">Om</a></li>
    <li><a href="/kontakt">Kontakt</a></li>
  </ul>
</nav>

<!-- Godt: Klart listeformål -->
<h3>Påkrævede dokumenter</h3>
<ul>
  <li>Kørekort eller ID</li>
  <li>Indkomstbevis</li>
  <li>Kontoudtog</li>
</ul>

ARIA-etiketter og beskrivelser

<ul aria-label="Sociale medier links">
  <li><a href="#" aria-label="Følg os på Facebook">Facebook</a></li>
  <li><a href="#" aria-label="Følg os på Twitter">Twitter</a></li>
  <li><a href="#" aria-label="Følg os på Instagram">Instagram</a></li>
</ul>

Tastaturnavigation

/* Sørg for at fokusindikatorer er synlige */
.nav-list a:focus {
  outline: 2px solid #007bff;
  outline-offset: 2px;
}

/* Spring til indhold link */
.skip-link {
  position: absolute;
  top: -40px;
  left: 6px;
  background: #000;
  color: white;
  padding: 8px;
  text-decoration: none;
  z-index: 1000;
}

.skip-link:focus {
  top: 6px;
}

Almindelige listefejl at undgå

1. Brug af lister kun til layout

<!-- Forkert: Brug af lister kun til styling -->
<ul>
  <li><div>Ikke faktisk relateret indhold</div></li>
  <li><div>Bruger kun til CSS styling</div></li>
</ul>

<!-- Korrekt: Brug passende elementer -->
<div class="card-grid">
  <div class="card">Indhold 1</div>
  <div class="card">Indhold 2</div>
</div>

2. Manglende listeelementer

<!-- Forkert: Direkte indhold i liste -->
<ul>
  Noget tekst direkte i listen
  <li>Første element</li>
  <li>Andet element</li>
</ul>

<!-- Korrekt: Alt indhold i listeelementer -->
<ul>
  <li>Noget tekst i et listeelement</li>
  <li>Første element</li>
  <li>Andet element</li>
</ul>

3. Forkert indlejring

<!-- Forkert: Listeelement uden for forælder -->
<ul>
  <li>Element 1</li>
  <li>Element 2</li>
</ul>
<li>Forældreløst element</li>

<!-- Korrekt: Korrekt indlejring -->
<ul>
  <li>Element 1</li>
  <li>Element 2</li>
  <li>Element 3</li>
</ul>

4. Brug af forkert listetype

<!-- Forkert: Uordnet liste til trin -->
<ul>
  <li>Først, gør dette</li>
  <li>Så, gør det</li>
  <li>Til sidst, gør dette</li>
</ul>

<!-- Korrekt: Ordnet liste til sekventielle trin -->
<ol>
  <li>Først, gør dette</li>
  <li>Så, gør det</li>
  <li>Til sidst, gør dette</li>
</ol>

Avancerede listeteknikker

Brugerdefinerede listetællere

.custom-counter {
  counter-reset: section;
  list-style: none;
  padding: 0;
}

.custom-counter li {
  counter-increment: section;
  margin-bottom: 10px;
}

.custom-counter li::before {
  content: "Trin " counter(section) ": ";
  font-weight: bold;
  color: #007bff;
}

Interaktive lister

<ul class="interactive-list">
  <li>
    <input type="checkbox" id="task1">
    <label for="task1">Færdiggør projektforslag</label>
  </li>
  <li>
    <input type="checkbox" id="task2">
    <label for="task2">Gennemgå kundefeedback</label>
  </li>
  <li>
    <input type="checkbox" id="task3">
    <label for="task3">Opdater projekttidslinje</label>
  </li>
</ul>
.interactive-list {
  list-style: none;
  padding: 0;
}

.interactive-list li {
  margin: 10px 0;
  padding: 10px;
  background: #f9f9f9;
  border-radius: 5px;
}

.interactive-list input[type="checkbox"] {
  margin-right: 10px;
}

.interactive-list input[type="checkbox"]:checked + label {
  text-decoration: line-through;
  color: #666;
}

Sammenfatning af bedste praksis

  1. Vælg den rigtige listetype baseret på indholdets mening
  2. Brug semantisk HTML for bedre tilgængelighed og SEO
  3. Giv klare overskrifter til at introducere listeindhold
  4. Style med CSS snarere end forældede HTML-attributter
  5. Sørg for tastaturtilgængelighed for interaktive lister
  6. Brug ARIA-etiketter når listeformålet ikke er klart
  7. Indlejr korrekt og valider din HTML
  8. Test med skærmlæsere for at sikre tilgængelighed
  9. Hold listeelementer kortfattede og scanbare
  10. Brug konsistent formatering gennem hele din side

Konklusion

HTML-lister er kraftfulde værktøjer til at organisere og præsentere information effektivt. Ved at forstå hvornår og hvordan man bruger uordnede lister, ordnede lister og definitionslister, kan du skabe velstruktureret, tilgængeligt og brugervenligt webindhold.

Husk at nøglen til effektiv listebrug er at vælge den rigtige type til dit indholds mening og formål. Kombineret med gennemtænkt CSS-styling og tilgængelighedsovervejelser bliver lister essentielle byggesten til at skabe engagerende og professionelle weboplevelser.

Begynd at implementere disse listeteknikker i dine projekter, og du vil bemærke forbedret indholdsorganisation, bedre brugeroplevelse og forbedret tilgængelighed på tværs af dine hjemmesider.

Sidst opdateret: October 3, 2025

Relaterede Artikler

Fortsæt med at læse disse relaterede artikler