HTML-artiklar © Eva von Pepel
* [ HTML-referensbok ] * [ Referensböcker ] *
Alla vet ju att HTML står för HyperText Markup Language och är ett markeringsspråk som används för att strukturera dokument avsedda för WWW. Men vad är det för språk egentligen? För att kunna svara på den frågan måste man ta en liten titt på SGML.
SGML (Standard Generalized Markup Language) är en internationell standard som definierar olika presentationer av elektroniska texter, t ex sådana texter som finns i hemsidor. Med andra ord är SGML ett metaspråk som på ett formellt sätt beskriver ett markeringsspråk dvs en samling av markeringsregler som ska tillämpas i ett markeringsspråk.
SGML-dokument kan vara av olika typer. En sådan typ är HTML, en annan typ är XML (Extensible Markup Language - ett annat markeringsspråk). Därför kallas HTML-dokument för SGML-dokument av typ HTML. Om vi jämför SGML med tryckta saker skulle då tidningar kunna vara HTML - en typ av tryckta saker (SGML) och böcker kunde man jämföra med XML - an annan typ av tryckta saker (SGML).
Ett HTML-dokument = SGML-dokument av typ HTML
En tidining = Tryckta saker av typ Tidning
HTML-språket, som allt annat, utvecklas och ändras. Elementen, attributen och värdena skrivs ner, försvinner eller läggs till. Idag finns ett antal olika versioner av språket varav den mest kända är HTML 3.2 - nuvarande standard. Skillnaden mellan de olika versionerna är antal tillåtna element, attribut och värden.
Om vi vidare delar upp tidningar i morgon- och kvällstidningar skulle då morgontidningar vara en version av tidningstyp (t ex HTML 3.2) medan kvällstidningar en annan version av tidningstyp (t ex HTML 2.0).
Tryckta saker |
SGML-dokument |
|---|---|
Typ av tryckta saker: tidningar |
Typ av SGML-dokument: HTML |
Tidningsversion: morgontidning |
HTML-version: HTML 3.2 |
Ett HTML 3.2-dokument = SGML-dokument av typ HTML version HTML 3.2
Varje version, eller nivå som det också heter, har sina egna regler. Dessa regler beskriver vilka element, attribut och värden är tillåtna, deras förekomst, dvs om ett visst element får innehålla ett annat och i så fall vilket samt hur de olika elementen markeras. En sådan regelsamling kallas för DTD - Document Type Definition. DTD definierar ett språk eller dess nivå. Att definera ett språk betyder att beskriva språkets grammatik.
För att kunna åtskilja mellan de olika versionerna och för att kunna tala om för en validator enligt vilka regler dokumentet ska testas uppger man vilken nivå av språket som användes vid struktureringen så att dokumentet kan testas enligt de rätta reglerna - DTD:n. Visa versioner av HTML, t ex HTML 3.2 kräver att varje dokument innehåller denna information.
Informationen skrivs på den absolut första raden av varje HTML-dokument i form av en s.k. Doctype Declaration - Dokumenttyp Deklaration. Denna deklaration talar om bl.a. vilken nivå av språket användes och hänvisar även till den DTD som definierar denna version. Om man till exempel strukturerar sina dokument enligt HTML 3.2 skriver man följande Dokumenttyp Deklaration:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
Om man använder stilmallar för att formatera sina HTML 3.2-dokument skrivs följande deklaration:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Experimental 970421//EN">
Om man fortfarande använder den tidigare standarden HTML 2.0 skriver man då:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
På http://vonpepel.com/ref/html/doctype.html är andra HTML-nivåer och deklarationer listade.
Många HTML-editorer skriver själva in Doktumenttyp deklarationen. Oftast är denna deklaration felaktig då den hänvisar till felaktig version och DTD. Om du använder en sådan editor bör du alltid kontrollera om deklarationen är rätt innan du validerar dina dokument annars kan testet visa en massa onödiga fel. Du bör även ändra i inställningarna i editorn så att en rätt deklaration skrivs in.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
I exemplet ovan talar deklarationen om att dokumentet är av typ HTML, version HTML 3.2.
SGML-dokument och då även SGML-dokument av typ HTML är strukturerade enligt visa regler. Strukturen är uppbyggd enligt ett logiskt, hierarkiskt och patriarkiskt familjeträd precis på samma sätt som familjeträden i mänskliga familjer är uppbyggda. På toppen av varje familj finns en stamfader från vilken alla andra familjemedlemmar härstammar. Låt oss kalla stamfadern för Jan Karlsson.
Då stamfadern Karlsson är grundaren av en familj/släkt/dynasti kommer även hela släkten heta Karlsson. Det är ju brukligt att släkten tar namn efter sin grundare. I dokument av typ HTML heter stamfadern elementet HTML. Detta element, precis som i Jan Karlssons fall, namnger hela släkten, dvs dokumenttyp HTML. Pga samma namn många blandar ihop dessa två begrepp men som sagt de är två olika begrepp.
Stamfadern: Jan Karlsson -> elementet HTML
Familj: Karlsson -> dokumenttyp HTML
Jan Karlsson är familjens Karlsson grundare och det är från honom som alla familjemedlemmar härstammar. Karlssons familjeträd kan se ut på följande sätt:
Alla barn och barnbarn har sina bestämda platser i trädet beroende på vilka föräldrar de tillhör. Skulle en av medlemmarna byta plats skulle även hela trädet falla, dvs vara felaktigt.
Elementet HTML är familjens dokumenttyp HTML grundare och det är från det som alla familjemedlemmar (element) härstammar. Elementets HTML familjeträd kan se ut på följande sätt:
Stamfadern, elementet HTML, har två barn; elementen HEAD och BODY som i sin tur har egna barn. HEADs barn är elementen TITLE och META. BODYs barn är elementet P som i sin tur är förälder till IMG. Även här har alla barn och barnbarn sina bestämda platser. Till exempel barn till elementet BODY kan inte blandas ihop med barn till elementet HEAD. Skulle man göra det kommer validatorn visa syntaxfel.
Struktureringen av HTML dokument bygger på de olika medlemmarnas (elementens) relation till varandra. Det är just denna relation som kallas för elementens förekomst. P.g.a. de hierarkiska relationerna kan inte elementen förekomma hur som helst i dokumentet. Hur elementen relaterar till varandra beskrivs i DTD:n. Men även utan hjälp av DTD:n är det lätt att gissa sig fram till elementens förekomst - HTML är ju ett logiskt språk. Det är uppenbart att en font inte kan innehålla en tabell men en tabell kan innehålla en font.
FEL | RÄTT: |
|---|---|
<FONT SIZE="+1"> |
<TABLE> |
Som i alla andra familjer ärver medlemmarna varandra. Barn ärver sina föräldrar som i sin tur ärver sina. Den synliga delen av dokumentet består av elementet BODY. Genom att ge elementet visa attribut t ex <BODY text=red andra attribut> kommer texten som alla barn (t ex P) och barnbarn (t ex LI) till BODY innehåller visas i rött. Samma sak i <P align=center>text <EM>mer text</EM></P>. Innehåll mellan <EM> och </EM> kommer att centreras därför att elementet EM ärver sin förälder P.
HTML är ett beskrivande markeringsspråk och inte ett programmeringsspråk. Ett beskrivande språk ger inga verkställande kommandon utan markerar enbart elementens förekomst. Elementen markeras med överenskomna markeringsord, s.k. taggar. Taggarna markerar början och slut på ett element. Notera att taggar och element är två olika begrepp.
Ett HTML dokument är ett SGML dokument av typ HTML. Dokument av typ HTML kan vara av olika versioner, t ex HTML 3.2. Varje version regleras genom att definiera just denna typ av dokument i en s.k. DTD. För att hänvisa till denna specifika typ av dokument, dess version och DTD uppger man i själva dokumentet en Dokumenttyp Deklaration.
Dokument av typ HTML består av ett enda element - elementet HTML från vilket alla andra element härstammar. Barn ärver sina föräldrars attribut. Alla medlemmar får förekomma i dokumentet enligt det familjeträdet som definieras i DTD:n.
Dokumenttyp deklaration: skrivs i HTML-dokumentet; fastställer typ av dokument, språkversion och hänvisar till reglerna för denna typ och version
DTD (Document Type Declaration): regelsamling som definierar en viss av version av språket
SGML (Standard Generalized Markup Language): ett meta språk som beskriver markeringsspråk, t ex HTML
HTML (HyperText Markup Language): ett SGML dokument av typ HTML
Elementet HTML: stamfadern i dokument av typ HTML från vilken alla andra element härstammar
Element: familjemeddlemmar ur familjen HTML; barn, barnbarn osv till elementet HTML
http://vonpepel.com/ref/ - Senaste uppdatering 18 november 1997