HTML (förkortning för HyperText Markup Language) är ett märkspråk för hypertext och utgör tillsammans med TCP/IP och HTTP den grundläggande standarden för WWW (World Wide Web, webben); webbsidor skrivs i allmänhet som HTML och överförs över Internet med HTTP.

HTML
Ett exempel på en bit HTML-kod med indrag, färgmarkerad syntax och radnummer
Ett exempel på en bit HTML-kod med indrag, färgmarkerad syntax och radnummer
Filändelse.html, .htm
MIME-typtext/html
TypkodTEXT
Uniform typidentifierarepublic.html
Utvecklad avW3C
Typ av formatmärkspråk
Utökad frånSGML
Utökad tillXHTML
StandardHTML5

WWW och därmed HTML hade sitt genombrott i samband med att Internet spreds explosionsartat bland den breda allmänheten i Västvärlden i mitten av 1990-talet, varvid många kom att uppfatta Internet och WWW som synonyma begrepp.

HTML ger möjlighet att ange ett dokuments struktur (rubriker, styckeindelning m.m.), metainformation (språk, författare, plats i en hierarki) och i viss mån hur dokumentet skall visas. HTML tillåter också att man infogar information av andra typer, eventuellt i andra filer, från början framförallt bilder, senare till exempel datorprogram (java, javascript) och instruktioner för hur sidan skall visas (CSS). Det revolutionerande var dels bilderna, dels hur lätt det var att länka till andra webbsidor.

HTML har kontinuerligt utvecklats, dels genom standardiseringsorganisationer, dels genom att tillverkare av webbläsare och webbservrar infört egna utvidgningar. Genom att man inte hållit sig till en gemensam standard är det vanligt att webbsidor inte helt fungerar med alla webbläsare.

Historik redigera

Hypertext som begreppet och dess moderna användning kan man hänvisa till omkring 1945, då Vannevar Bush beskrev ett informationssystem där läsaren inte längre behövde läsa texter från början och till slut, utan fritt kunde följa det spår som intresserade läsaren. Här myntades även begrepp som hem, vilket är den plats man återvänder till efter avslutad läsning. Den första tillämpningen som på allvar försökte införa hypertext var ett program som hette guide, som aldrig riktigt slog igenom.

I början av 1980-talet tillverkade man den första persondatorn som privatpersoner, åtminstone i Väst, kunde köpa till ett överkomligt pris. HTML var det lyckade resultatet av årtionden av experimenterande med hypertext.

I maj 1994 arrangerade CERN den första internationella www-konferensen i Genève, och på hösten samma år arrangerades en andra, ännu större, kongress i Chicago av NCSA.[1]

Det var genom det av Tim Berners-Lee föreslagna World Wide Web, med HTML som märkspråk, och spridningen av Internet på 1990-talet som hypertext slog igenom hos allmänheten. Utvecklingen av märkspråket kom att drivas dels av standardiseringsorganisationen World Wide Web Consortium, dels av webbläsartillverkarna (jämför "browserkrigen" på 1990-talet), som genom att leda utvecklingen försökte utöka sina marknadsandelar. HTML, som är ett märkspråk, har av många kommit att uppfattas som ett programmeringsspråk för hypermedia.

Dokumentformatering redigera

HTML är ett format där dokumentets struktur och logik bestäms av författaren, medan webbläsaren och läsaren själv styr hur texten kommer att presenteras. Redan tidigt ville ändå webbdesignern styra hur dokumentet skulle presenteras. Numera försöker man skilja mellan märkspråket HTML och presentationsrekommendationer i form av så kallade stilmallar, CSS. Tillägg programmerade i skriptspråk (exempelvis JavaScript) används ofta för att webbsidorna skall kunna reagera på vad användaren gör, utan att en ny sida behöver laddas ner. Det är också vanligt att webbsidor skapas allteftersom de efterfrågas utgående från en eller flera mallfiler som kombineras av webbservern, vilket tillåter att man inkluderar föränderlig information.

Filer med filnamnstillägget .htm eller .html brukar vara HTML-dokument. Filerna innehåller förutom text så kallade taggar, vilka talar om för webbläsaren hur informationen ska presenteras för användaren. Alla element startas med hjälp av ett 'mindre än'-tecken (<) följt av taggnamnet, eventuella parametrar och ett 'större än'-tecken (>), många element måste dessutom stängas med hjälp av en sluttagg. Denna sluttagg innehåller endast taggnamnet och är uppbyggt av </ följt av taggnamnet varefter >. De element som ej behöver stängas på detta vis kallas "tomma element".

Olika webbläsare tolkar HTML-kod på olika sätt och detta har varit ett problem gällande för världens webbutvecklare. Gemensamma standarder växer fram genom World Wide Web Consortium(W3C). Genom att följa dessa standarder ökar chansen att webbsidan ser likadan ut i moderna webbläsare. Dessutom kan sidorna bli mer tillgängliga för besökare som har någon funktionsnedsättning och få en högre rankning på sökmotorer.

Den senaste versionen av HTML är HTML 5.1 från 2016.[2][Uppdatering behövs]  HTML 5 blev standard den 28 oktober 2014.[3] Den tidigare standarden, HTML 4, fastställdes 1997 av W3C, version 4.01 år 1999.[4] HTML 4.01 finns i tre olika former, nämligen Strict, Transitional och Frameset. Dessa skiljer sig mest huruvida HTML-koden får innehålla äldre, utgångna taggar som endast används i presentationssyfte. Det var rekommenderat att använda Strict till nyutvecklade webbplatser. Transitional innehåller alla taggar som Strict gör inklusive äldre så kallade presentationstaggar. Frameset innehåller allt från Transitional och är den enda variant som tillåter användandet av så kallade ramar.

Arbete pågår för närvarande med utveckling av HTML 5, som inkluderar nya element för att utvidga semantiken i märkspråket, förbättrade formulär med Web forms 2.0, element för ljud, video och grafik och i mycket större utsträckning definiera förväntat beteende hos en webbläsare när koden tolkas. Dagens standarder är ofta tvetydiga, och tvingar programmerarna av webbläsare att själv välja hur olika situationer skall tolkas.

För att ange vilken version av HTML som dokumentet är byggt efter så lägger man högst upp i varje dokument en dokumentmall, vilken man oftast brukar låna de engelska termerna för, nämligen DTD eller DOCTYPE. Moderna webbläsare använder denna för att kontrollera om sidan är kodad efter moderna standarder eller inte. Om DTD saknas, eller är gammal, så går webbläsaren in i det så kallade "Quirks mode" och använder då en bakåtkompatibel renderingsmotor för att kunna visa äldre sidor någorlunda korrekt[5]. Skillnaden mellan standardläge och "quirks-läge" rör framförallt den så kallade boxmodellen.

Elementtyper redigera

Huvudartikel: HTML-element

Det finns fyra kategorier av elementtyper i HTML:

  • Strukturmärken, som beskriver syftet med texten, till exempel <h1>Golf</h1>, som tolkas som högsta rubriknivå.
  • Presentationsmärkning, som beskriver textens stil, till exempel <b>fet text</b>, som resulterar i fet text. Många webbutvecklare har idag upptäckt fördelarna med att separera presentation och struktur så dessa taggar är oftast icke-rekommenderade att använda. Istället används så kallade stilmallar för att presentera data på sidan.
  • Hyperlänkmärkningar, som länkar till ett dokument eller till en sektion i aktuellt dokument eller annat dokument, till exempel <a href="http://wikipedia.org">Wikipedia</a>, som skriver ut ordet Wikipedia med understrykning som standard. Vid aktivering av länken öppnar webbläsaren sidan http://wikipedia.org.
  • Interaktiva element, som skapar interaktiva objekt, till exempel knappar och listor.

Ordet "tagg" överanvänds ofta när diskussioner om HTML-relaterade ämnen uppstår. Det är inte ovanligt att ordet "tagg" används för att referera till allt från DOCTYPE-deklarationen till olika attribut, vilket naturligtvis inte är korrekt.[6][7]

  • <strong> och </strong> är ett exempel två taggar, närmare bestämt en starttagg följt av motsvarande sluttagg.
  • <strong></strong> är ett exempel på ett element.
  • <abbr title="HyperText Markup Language">HTML</abbr> är ett exempel på ett element som använder ett så kallat attribut med namnet title och värdet HyperText Markup Language.

Lista över vanligt förekommande elementtyper redigera

  • <a href="http://www.example.org/">, används för att skapa hyperlänkar och stängs med </a>
  • <br>, skapar en radbrytning
  • <div> och <span>, element utan semantisk mening, används oftast för att koppla CSS till dokumentet.
  • <dl>, <dt> och <dd>, är de olika delarna av en definitionslista
  • <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, huvudrubrik och ner till och med femte nivån av underrubriker
  • <img src="http://www.example.org/bild.ext">, infogar en bild i dokumentet
  • <ol> och <ul>, skapar en sorterad respektive osorterad lista
  • <p>, märker upp ett textstycke
  • <table>, tabell, där varje tabellrad omsluts av <tr> och <td> skapar en tabellcell
  • <strong> och <em>, markerar olika sorters betoning
  • <hr>, skapar en horisontell linje

Många taggar måste stängas med taggen och ett inledande / som i exemplet </span> för <span>-taggen.

Attribut redigera

Till de flesta HTML-element kan anges särskilda attribut, med vars hjälp det går att mer exakt definiera elementets funktion och/eller hur det ska renderas på exempelvis en webbsida. Attributen skrivs inom starttaggen för ett element efter elementets namn, och följs av ett likamedtecken och attributets värde. I enlighet med HTML-specifikationen bör detta värde omges av enkla eller dubbla citationstecken, men till skillnad från XHTML är detta inte strikt nödvändigt.

Specialtecken redigera

Ibland vill man använda tecken som antingen har en speciell betydelse i HTML (såsom "<"), inte finns i den teckenuppsättning som omfattas av vald teckenkodning eller inte är lätta att mata in med tangentbordet. Till exempel finns inte kyrilliska bokstäver i Latin-1, som förut användes allmänt, och inte på svenska tangentbord. Man kan då för enstaka sådana tecken använda antingen så kallade entiteter eller numeriska referenser.

Vissa allmänt använda tecken finns som entiteter: till exempel kan "&", citattecken, "<" och ">" skrivas som "&amp;" ("ampersand"), "&quot;" ("quote") "&lt;" ("lesser than") respektive "&gt;" ("greater than"). "&nbsp;" ("no-break space") står för ett blanksteg vid vilket radbyte inte skall tillåtas, "&shy;" ("soft hyphen") för ett ställe lämpligt för avstavning, där bindestreck visas endast vid avstavning.

Bland tecknen tillgängliga som entiteter återfinns bland annat tecken viktiga i HTML-syntax samt alla tecken i intervallen 0x80–0x9F och 0xA0–0xFF i Windows-1252, alla i intervallet 0xA0–0xFF i Latin-1 (sammanfaller med det senare Windows-intervallet; bland annat åäöéàßçþ) och alla i Adobe Symbol. Den sistnämnda innehåller bland annat grekiska tecken och matematiska symboler.[8]

Alla tecken som finns i Unicode kan skrivas med numeriska referenser, med angivande av kodpunkten, antingen i hexadecimalform (som oftast används i andra sammanhang) eller i decimalform (som ofta används i HTML). Tecknet kodas då som &#nummer; där hexadecimala nummer föregås av "x". Till exempel kan lilla tau (u+03C4) skrivas ut ("τ") eller kodas som "&#x3C4;" (nollor i början utelämnas vanligen) eller som "&#964;"

Exempel på kompletta taggar redigera

Här visas exempel på taggar. Först anges elementet (i mörkgrön fetstil) och sedan de olika attributen (i ljusgrön normal stil) följt av dess värden (i rött).

  • Ett så kallat "tomt element", som anges utan sluttagg:
    <img src="minbild.jpg" alt="Min bild" width="120" height="40" />
    
  • Ett element som kräver sluttagg:
    <a href="minhemsida.html">Länk till hemsida</a>
    

Ramar redigera

I HTML 4.0 och XHTML 1.0 finns en dokumenttyp som tillåter ramar. Detta används för att skapa en sida som är uppdelad i olika delar där varje del visar en separat webbsida. Då webbsidor med ramar inte kan ha annat innehåll existerar inte body-elementet i denna dokumenttyp. Därför anges ramar istället i det ersättande frameset-elementet.

Ramtaggar redigera

Här kommer flera ramtaggar. Om inget annat har angetts, är alla taggar i taggen <frameset>:

Taggnamn Användning
<frameset> Denna tagg används istället för <body> och används i början på ett ramdokument.
<frame> Startar en ram i ett ramdokument.
<noframes> Innefattar taggar och text för de webbläsare som inte stöder ramar.
<iframe> Denna tagg finns i <body> och ger så kallade "flytande" ramar, inbäddade i sidan. I taggen skall anges alternativ text för de webbläsare som inte stödjer flytande ramar.

Borttagna ramar redigera

I HTML 4.01 Strict, XHTML 1.1 och HTML5 är alla funktioner för ramar borta, med undantag av <iframe>.[9]

Exempel på ett enkelt dokument redigera

Här följer ett exempel på ett enkelt dokument. Dokumentet har titeln "Sidan har flyttats" och visar en förklarande text (p-element) för besökaren om att sidan har flyttats, i slutet av textstycket finns även en länk (a-elementet) som pekar till http://example.org; sidans nya adress (upplysningen om sidflyttningen borde ges med HTTP-protokollet, varvid webbläsaren hittar den nya adressen automatiskt, utan att behöva ladda sidan).

<!DOCTYPE html>
<html>
  <head>
    <title>Sidan har flyttats</title>
    <meta charset="UTF-8">
  </head>
  <body>
    <h1>Denna sida har flyttats!</h1>
    <p>Denna sida har flyttats till <a href="http://www.example.org/">www.example.org</a>.</p>
  </body>
</html>

HTML, XHTML och framtiden redigera

HTML 4.01 är formellt en applikation av SGML, även om i princip inga webbläsare hanterar detta faktum korrekt. I praktiken har alltså HTML fungerat som en helt egen teknik och webbläsarna har inkluderat en stor mängd logik för att hantera brister i en sidas uppmärkning.

För att råda bot på detta, samt öppna en möjlighet att kombinera märkspråk från skilda namnrymder, så skapades XHTML, som är en omformulering av HTML som en applikation av XML. För att en sidas skall tolkas som äkta XHTML, så skall detta anges i HTTP-huvudet, med en så kallad MIME-deklaration. Dock stödjer inte Internet Explorer XHTML, vilket inneburit att i princip alla webbplatser idag skickar sina sidor som HTML, även om de har en XHTML DTD.

Eftersom elementnamn och attributnamn är identiska mellan XHTML 1.0 och HTML 4.01, så skriver man ibland (X)HTML, för att markera att båda teknikerna avses.

HTML 5-projektet redigera

Huvudartikel: HTML5

Arbetet med uppdateringen till HTML5 påbörjades 2004 av en grupp webbutvecklare, främst med anknytning till Apple, Mozilla och Opera. Gruppen antog namnet "Web Hypertext Application Technology Working Group" – eller kortare WHATWG.

"Web Applications 1.0", som HTML5 också kallas, är tänkt att ersätta både HTML 4 och XHTML 1. Gruppen avser att specificera en ny och enhetlig DOM som skall fungera både för XML-baserade och HTML-baserade serialiseringar av HTML5. En av grundtankarna i HTML5 är alltså att en författare skall kunna välja om denne vill använda HTML- eller XML-syntax för sina webbsidor och att sidorna skall kunna hanteras i princip likvärdigt av skript när dessa är inlästa i en webbläsares internminne oavsett vilket serialiseringsformat som valts.[10]

W3C:s arbetsgrupp för utveckling av HTML redigera

Arbetet från WHATWG blev officiellt grunden för nästa standard, när W3C i mars 2007 startade en arbetsgrupp för vidareutveckling av HTML. Denna grupp innehåller, förutom representanter för samtliga större webbläsarleverantörer (Microsoft, Opera, Mozilla och Apple), inklusive flera av de drivande krafterna bakom WHATWG. HTML5 blev Working Draft vid W3C i januari 2008.

Se även redigera

Källor redigera

Externa länkar redigera