Förstå HTML Taggar och Attribut: En Komplett Guide till Semantisk Markup
Lär dig allt om HTML taggar och attribut, hur de fungerar, bästa praxis för semantisk markup och hur du skriver ren, tillgänglig HTML-kod.
Lär dig allt om HTML taggar och attribut, hur de fungerar, bästa praxis för semantisk markup och hur du skriver ren, tillgänglig HTML-kod.
HTML taggar och attribut är byggstenarna i varje webbsida. Att förstå hur de fungerar, när de ska användas, och hur de arbetar tillsammans är avgörande för att skapa välstrukturerad, tillgänglig och SEO-vänlig HTML. Denna guide tar dig djupt in i världen av HTML taggar och attribut, från grundläggande koncept till avancerade tekniker.
HTML taggar är nyckelord omgivna av vinkelparenteser (<
och >
) som berättar för webbläsaren hur innehåll ska struktureras och visas. De fungerar som instruktioner som definierar olika element på din webbsida.
<tagnamn>Innehåll</tagnamn>
<tagnamn>
- startar elementet</tagnamn>
- avslutar elementet (notera snedstrecket)Vissa taggar har inget innehåll och stänger sig själva:
<img src="bild.jpg" alt="Beskrivning">
<br>
<hr>
<input type="text" name="namn">
Attribut ger ytterligare information om HTML element. De placeras alltid i den öppnande taggen och kommer i namn/värde-par.
<tagnamn attributnamn="värde">Innehåll</tagnamn>
<a href="https://exempel.com" target="_blank" title="Besök Exempel">Länk</a>
<img src="foto.jpg" alt="Beskrivning" width="300" height="200">
<div id="header" class="container">Innehåll</div>
Dessa taggar definierar den övergripande strukturen av ditt dokument:
<!DOCTYPE html>
<html lang="sv">
<head>
<title>Sidtitel</title>
<meta charset="UTF-8">
</head>
<body>
<header>Header innehåll</header>
<nav>Navigation</nav>
<main>Huvudinnehåll</main>
<footer>Footer innehåll</footer>
</body>
</html>
Semantiska taggar ger betydelse åt innehåll:
<article>En komplett artikel</article>
<section>En sektion av innehåll</section>
<aside>Sidofält eller relaterat innehåll</aside>
<figure>
<img src="diagram.jpg" alt="Flödesschema">
<figcaption>Figur 1: Process flödesschema</figcaption>
</figure>
<time datetime="2024-01-15">15 januari 2024</time>
Taggar för formatering av text:
<h1>Huvudrubrik</h1>
<h2>Underrubrik</h2>
<p>Stycke med <strong>viktig text</strong> och <em>betonad text</em></p>
<blockquote cite="https://källa.com">
"Detta är ett citat från en extern källa."
</blockquote>
<code>console.log('Hej Världen');</code>
<pre>
Förformaterad text
bevarar mellanslag och radbrytningar
</pre>
Taggar för att organisera information i listor:
<!-- Osorterad lista -->
<ul>
<li>Första punkten</li>
<li>Andra punkten</li>
<li>Tredje punkten</li>
</ul>
<!-- Sorterad lista -->
<ol>
<li>Steg ett</li>
<li>Steg två</li>
<li>Steg tre</li>
</ol>
<!-- Definitionslista -->
<dl>
<dt>HTML</dt>
<dd>HyperText Markup Language</dd>
<dt>CSS</dt>
<dd>Cascading Style Sheets</dd>
</dl>
Taggar för användarinteraktion:
<form action="/skicka" method="post">
<fieldset>
<legend>Personlig information</legend>
<label for="namn">Namn:</label>
<input type="text" id="namn" name="namn" required>
<label for="epost">E-post:</label>
<input type="email" id="epost" name="epost" required>
<label for="meddelande">Meddelande:</label>
<textarea id="meddelande" name="meddelande" rows="4"></textarea>
<button type="submit">Skicka</button>
</fieldset>
</form>
Taggar för bilder, video och ljud:
<img src="foto.jpg" alt="Beskrivning" loading="lazy">
<video controls width="640" height="360">
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
Din webbläsare stöder inte video-taggen.
</video>
<audio controls>
<source src="ljud.mp3" type="audio/mpeg">
<source src="ljud.ogg" type="audio/ogg">
Din webbläsare stöder inte audio-taggen.
</audio>
Dessa attribut kan användas på alla HTML element:
id
Attributet<div id="header">Unik identifierare</div>
<a href="#header">Gå till header</a>
class
Attributet<div class="container primary-content">Flera klasser</div>
style
Attributet<p style="color: blue; font-size: 18px;">Inline styling</p>
title
Attributet<abbr title="HyperText Markup Language">HTML</abbr>
<a href="https://exempel.com"
target="_blank"
rel="noopener noreferrer"
download="filnamn.pdf">
Ladda ner fil
</a>
href
: Destinationen för länkentarget
: Var länken ska öppnas (_blank
för nytt fönster)rel
: Förhållandet mellan nuvarande och länkade dokumentdownload
: Föreslår att länken ska laddas ner<img src="bild.jpg"
alt="Beskrivande text"
width="300"
height="200"
loading="lazy"
srcset="bild-liten.jpg 300w, bild-stor.jpg 800w"
sizes="(max-width: 600px) 300px, 800px">
src
: Bildens källaalt
: Alternativ text för tillgänglighetwidth/height
: Dimensionerloading
: Lazy loading för prestandasrcset
: Responsiva bildersizes
: Storleksinformation för responsiva bilder<input type="email"
name="epost"
id="epost"
placeholder="din@epost.com"
required
autocomplete="email"
pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">
type
: Input typ (text, email, password, etc.)name
: Namn för formulärinlämningid
: Unik identifierareplaceholder
: Hjälptextrequired
: Obligatoriskt fältautocomplete
: Webbläsarens autokompletteringpattern
: Regex valideringSemantisk HTML handlar om att välja taggar baserat på betydelse snarare än utseende.
<div class="header">
<div class="title">Min Blogg</div>
<div class="nav">
<div class="nav-item">Hem</div>
<div class="nav-item">Om</div>
</div>
</div>
<header>
<h1>Min Blogg</h1>
<nav>
<ul>
<li><a href="/">Hem</a></li>
<li><a href="/om">Om</a></li>
</ul>
</nav>
</header>
<!-- Korrekt -->
<p><strong>Fet text</strong> i ett stycke</p>
<!-- Fel -->
<p><strong>Fet text</p></strong>
<!-- Korrekt -->
<p>Detta stycke är korrekt stängt</p>
<!-- Fel -->
<p>Detta stycke är inte stängt
<!-- Korrekt -->
<div class="container">
<!-- Fel (men fungerar) -->
<DIV CLASS="CONTAINER">
<!-- Korrekt -->
<img src="bild.jpg" alt="Beskrivning">
<!-- Fel (kan skapa problem) -->
<img src=bild.jpg alt=Beskrivning>
<!-- Korrekt -->
<div class="article-header">
<input id="user-email" name="email">
<!-- Mindre tydligt -->
<div class="div1">
<input id="input1" name="e">
ARIA (Accessible Rich Internet Applications) attribut förbättrar tillgänglighet:
<button aria-label="Stäng dialog" aria-expanded="false">
<span aria-hidden="true">×</span>
</button>
<nav aria-label="Huvudnavigation">
<ul role="menubar">
<li role="menuitem"><a href="/">Hem</a></li>
<li role="menuitem"><a href="/om">Om</a></li>
</ul>
</nav>
<h1>Huvudtitel</h1>
<h2>Sektion 1</h2>
<h3>Undersektion 1.1</h3>
<h3>Undersektion 1.2</h3>
<h2>Sektion 2</h2>
<h3>Undersektion 2.1</h3>
<!-- Explicit etikett -->
<label for="namn">Namn:</label>
<input type="text" id="namn" name="namn">
<!-- Implicit etikett -->
<label>
E-post:
<input type="email" name="epost">
</label>
<!-- Fel -->
<img src="logo.jpg">
<!-- Korrekt -->
<img src="logo.jpg" alt="Företagets logotyp">
<!-- För dekorativa bilder -->
<img src="dekoration.jpg" alt="" role="presentation">
<!-- Fel - hoppar över H2 -->
<h1>Huvudtitel</h1>
<h3>Undersektion</h3>
<!-- Korrekt -->
<h1>Huvudtitel</h1>
<h2>Sektion</h2>
<h3>Undersektion</h3>
<!-- Fel -->
<div class="article">
<div class="title">Titel</div>
<div class="content">Innehåll</div>
</div>
<!-- Korrekt -->
<article>
<h2>Titel</h2>
<p>Innehåll</p>
</article>
<!-- Fel -->
<p style="color: red; font-size: 20px;">Text</p>
<!-- Korrekt -->
<p class="highlight">Text</p>
<!-- Med CSS: .highlight { color: red; font-size: 20px; } -->
<main>
<article>
<header>
<h1>Artikeltitel</h1>
<time datetime="2024-01-15">15 januari 2024</time>
</header>
<section>
<h2>Introduktion</h2>
<p>Artikelinnehåll...</p>
</section>
<aside>
<h3>Relaterade länkar</h3>
<ul>
<li><a href="#">Länk 1</a></li>
<li><a href="#">Länk 2</a></li>
</ul>
</aside>
</article>
</main>
<form>
<input type="email" placeholder="E-post">
<input type="tel" placeholder="Telefon">
<input type="url" placeholder="Webbsida">
<input type="date">
<input type="time">
<input type="color">
<input type="range" min="0" max="100">
<input type="number" min="1" max="10">
</form>
<figure>
<video controls poster="miniatyr.jpg">
<source src="video.mp4" type="video/mp4">
<track kind="subtitles" src="undertexter.vtt" srclang="sv" label="Svenska">
</video>
<figcaption>Video beskrivning</figcaption>
</figure>
<!-- Saknad DOCTYPE -->
<!DOCTYPE html>
<!-- Saknad lang attribut -->
<html lang="sv">
<!-- Saknad meta charset -->
<meta charset="UTF-8">
<!-- Ogiltiga attribut -->
<img src="bild.jpg" alt="Beskrivning">
<img src="bild.jpg" alt="Beskrivning" loading="lazy">
<iframe src="video.html" loading="lazy"></iframe>
<link rel="preload" href="viktig-font.woff2" as="font" type="font/woff2" crossorigin>
<link rel="prefetch" href="nästa-sida.html">
<picture>
<source media="(min-width: 800px)" srcset="stor.webp" type="image/webp">
<source media="(min-width: 800px)" srcset="stor.jpg">
<source srcset="liten.webp" type="image/webp">
<img src="liten.jpg" alt="Beskrivning">
</picture>
<custom-button type="primary" size="large">
Klicka här
</custom-button>
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#000000">
<button aria-describedby="help-text">
Skicka
</button>
<div id="help-text" role="tooltip">
Klicka för att skicka formuläret
</div>
Konvertera denna icke-semantiska kod:
<div class="header">
<div class="logo">Min Sida</div>
<div class="nav">
<div><a href="/">Hem</a></div>
<div><a href="/om">Om</a></div>
</div>
</div>
<div class="content">
<div class="article">
<div class="title">Artikeltitel</div>
<div class="text">Artikelinnehåll...</div>
</div>
</div>
<header>
<h1>Min Sida</h1>
<nav>
<ul>
<li><a href="/">Hem</a></li>
<li><a href="/om">Om</a></li>
</ul>
</nav>
</header>
<main>
<article>
<h2>Artikeltitel</h2>
<p>Artikelinnehåll...</p>
</article>
</main>
Förbättra detta formulär:
<form>
<input type="text" placeholder="Namn">
<input type="email" placeholder="E-post">
<button>Skicka</button>
</form>
<form>
<label for="namn">Namn:</label>
<input type="text" id="namn" name="namn" required aria-describedby="namn-hjälp">
<div id="namn-hjälp">Ange ditt fullständiga namn</div>
<label for="epost">E-post:</label>
<input type="email" id="epost" name="epost" required>
<button type="submit">Skicka</button>
</form>
Att behärska HTML taggar och attribut är grundläggande för webbutveckling. Genom att förstå hur de fungerar, när de ska användas, och hur de bidrar till semantisk markup, kan du skapa webbsidor som är tillgängliga, SEO-vänliga och lätta att underhålla.
Kom ihåg att HTML handlar om struktur och betydelse, inte utseende. Använd taggar som bäst beskriver ditt innehåll, och låt CSS hantera styling. Med detta tillvägagångssätt kommer dina webbsidor att vara robusta, tillgängliga och framtidssäkra.
Fortsätt att öva genom att experimentera med olika taggar och attribut. Ju mer du använder dem i praktiken, desto mer naturligt blir det att välja rätt element för ditt innehåll.
Fortsätt läsa med dessa relaterade artiklar
Lär dig HTML från grunden med denna omfattande guide som förklarar vad HTML är, dokumentstruktur, viktiga taggar och hur du skapar din första webbsida.
Förstå HTML dokumentstruktur i detalj. Lär dig om DOCTYPE, head-sektionen, meta-taggar, body-element och hur du bygger välstrukturerade HTML-dokument.
Lär dig hur du använder HTML rubriker (H1-H6) och stycken effektivt. Förstå hierarki, tillgänglighet, SEO-fördelar och bästa praxis för textstruktur.
Lär dig allt om HTML länkar och ankare. Förstå href-attributet, olika länktyper, ankarlänkar, tillgänglighet och bästa praxis för navigation.