HTML-Standarder
CT3620 – Vetenskapsmetodik för teknikområdet
2005-10-18
Magnus Heglert
[email protected]
Juan Maluenda Alvarez
[email protected]
Sammanfattning
Kring 1990 hade Internet börjat få fäste i världen och fler och fler ville upptäcka vad det
handlade om. Men det fanns inget i stil med dagens webbsidor utan det var antingen Telnet,
ftp eller Gopher som man använde. Utvecklingen gick framåt efterhand och man ville göra
webben mer användarvänlig. En man vid namn Tim Berners Lee fick då för sig att det
koncept han kallade för hypercards skulle kunna omvandlas till en webbstandard. Han såg att
det fanns ett arbete som handlade om att strukturera textdokument med hjälp av SGML
(Standard Generalized Markup Language). Som grund använde han detta och skapade HTML
(Hyper text markup language) som sedan fick ett stort genomslag över Internet tack vare att
http-protokollet också utvecklades.
Begreppet World Wide Web (WWW) myntades också och början till dagens webbplatser
började komma. Mycket har hänt med HTML-standarden genom åren och den första
standarden är inte alls lik den standard som användes idag. Men utan Berners Lees arbete
hade webben inte sett ut som den gör idag.
2
Innehållsförteckning
HTML Standarder ...................................................................................................................... 1
Sammanfattning ......................................................................................................................... 2
Innehållsförteckning................................................................................................................... 3
Inledning..................................................................................................................................... 4
Hypertext / hypercards ....................................................................................................... 4
Mer om HTML................................................................................................................... 5
Html – En fusion av SGML och hyperlänkar ............................................................................ 6
Bilder och länkar ................................................................................................................ 7
HTML 3.0 och HTML 3.2 ..................................................................................................... 7
HTML 4.0............................................................................................................................... 8
XHTML 1.0............................................................................................................................ 9
Framtiden ................................................................................................................................. 11
Referenser................................................................................................................................. 12
3
Inledning
Datorer har utvecklats väldigt mycket de senaste åren och vi har kommit mer och mer in i en
datorålder. Från de första datorerna som bara var stora räknemaskiner till dagens datorer som
används för allt från kommunikation till simuleringar av olika slag. Innan datorer kom skrevs
allting på papper. I och med övergången från maskinskrivna dokument till elektroniska
dokument gavs möjligheten att producera mer varierande arbeten. I de tidiga versionerna av
elektroniska dokument lades tyngdpunkten på renderingsinformationen för att visa
dokumentet. Dessa renderingsmetoder varierade kraftigt för olika datorer eftersom de hade
olika plattformar och kapacitet t.ex. typsnitt och upplösning. Detta gjorde att man var tvungen
att direkt i dokumentet tala om hur man ville att texten skulle se ut på sin dator samt hur den
skulle återskapas för att se likadan ut.
Utvecklingen fortsatte och desto fler fick tillgång till datorer och programvara för att skriva
de elektroniska dokumenten, då skapades även problemen. Ett av dessa var hur man skulle
strukturera textdokumenten så att alla fick dokument som såg lika ut, oavsett om man visade
det på sin egen dator eller någon annanstans. Man behövde ett gemensamt system för att få
detta att fungera. IBM insåg problematiken och började utveckla Generalized Markup
Language (GML) [RAGGET98] som var ett slags taggspråk (Ett språk av märkord som
definierar textformatering) som användes för att märka upp text enligt vissa regler. Detta
språk tolkades sedan av datorn där texten skulle visas. Man fick då ett dokument som såg
likadant ut på allas datorer oberoende av vilket system som låg i botten.
Man hade även ett behov av att kunna använda global hypertext för att kunna förflytta sig i
dokument på ett snabbt och effektivt sätt. Men detta ställde till problem när dokument skulle
flyttas från ett system till ett annat, då alla system har olika input/output system och
gränssnitt. Detta problem löstes med GML, vilket gjorde att alla dokument tolkades på rätt
sätt.
Det fanns dock problem med GML för det var inte tillräckligt generellt för att kunna användas
överallt. Det följde vissa strikta regler som inte gick att förändra hur som helst. Man började
då att utvecklas ett nytt språk som kallades för Standard General Markup Language (SGML).
SGML är en standard för hur grammatiken för ett taggspråk ska se ut. Det är det som styr hur
de olika taggarna ska tolkas för att texten ska få rätt utseende.
SGML bygger på att man skriver löpande text och i texten sätter man sedan in taggar för att
markera rubriker, stycken, listor och annat som man har definierat i grammatikreglerna.
SGML bygger till stor del på det arbete som bland annat IBM hade lagt ner på GML. SGML
blev en ISO standard 1986 (ISO 8879) och har sedan dess varit den standard man använt för
att utveckla dagens taggspråk.
I och med att SGML slog igenom så underlättades förflyttningen av dokument från ett system
till ett annat, då dokumentet enbart höll information om hur data skulle se ut och all
renderingsberäkning lämnades till plattformen.
Hypertext / hypercards
Konceptet hypertext myntades redan 1940 men slog inte igenom förrän persondatorernas
genombrott. Idén med hypertext var att i ett dokument ha en länk till ett annat dokument eller
en annan del av samma dokument, så att man i realtid kunde hoppa mellan dessa.
4
Detta blev officiellt känt 1980 genom det så kallade hypercards, vilka var arkiv som gick att
bläddra interaktivt i. Man kunde stega från ett ställe till ett annat utan att behöva slå upp just
det avsnittet i arkivet. Samma årtal skapade Tim Berners Lee ett eget system för privat bruk
med hyperlänkar som han kallade enquire.
Hypertextbehovet inom forskningen på Centre Européen de la Recherche Nucleaire (CERN)
ledde att Tim Berners Lee utvecklade ett system för att koppla samman andra befintliga
forskningsdokument. Berners Lee ville utveckla ett system för globala hypertextlänkar som
skulle kunna kopplas till vilket dokument som helst över hela jorden. Problemet låg i att
dokumenten varierade i format. Vilket betydde att en användare inte kunde med full säkerhet
öppna ett länkat dokument då detta kunde vara i ett format som användarens mjukvara inte
kunde läsa.
Detta behov av gemensam dokumenttyp gjorde att Berners Lee utvecklade en egen
dokumenttyp som han byggde på SGML. Det färdiga resultatet fick namnet HTML eftersom
det hanterade Hyptertext och var ett markupspråk.
Men det Internet som fanns var inte moget för att hantera HTML. Det som användes var
Telnet (Fjärranslutnings system), File Transfer Protocol (FTP) och i viss mån även Gopher
(menystyrt textbaserat informationssystem). [RAGGET98] Men då HTML gjorde sitt intåg så
behövdes ett nytt protokoll för Internet som möjliggjorde överföring av HTML över Internet.
Detta insåg Berners Lee och utvecklade då Hypertext Transfer Protocol (http). Httpprotokollet är ett protokoll som används för att hämta HTML från en server för att sedan visa
upp det i klientens webbläsare. Ett protokoll i sig är en uppsättning av regler för hur data ska
överföras mellan server och klient.
Mer om HTML
HTML är ett flexibelt och lättanvänt språk för att strukturera hur webbsidor ska se ut. Med
språket kan man göra rubriker, stycken, lägga in bilder, listor och en massa andra saker. Det
var 1995 som den första specifikationen för hur HTML ska se ut kom. Den innehöll då en
lista på hur taggarna skulle tolkas, men även en dokumentstypsdefinition som talade om vilka
taggar som var giltiga att använda. Detta blev sedan den grundläggande standarden för hur
dagens webb ska se ut.
5
Html – En fusion av SGML och hyperlänkar
Den första versionen av HTML (version 2.0) släpptes 1995. Den var ett plattformsoberoende
markup-språk (ett språk för att definiera textformatering). Det använde SGML standarden för
att skapa grammatiken i språket dvs. hur språket skulle tolkas. Det var först i HTML som
började man blanda hypertext, vanlig text och grafiska objekt. Det implementerades även
script-stöd som gjorde att man kunde använda klientens webbläsare för att förändra
webbsidornas innehåll. Även om språket inte var tänkt till att vara grafiskt så fanns det medel
för att visa upp bilder. Detta blev tillagt eftersom det var någonting som efterfrågades.
Kommandona i HTML kallas för taggar. En tagg börjar och slutar med klamrar (< & >).
Mellan klamrarna så skriver man sedan det kommando man vill utföra eller det elementnamn
man vill använda. Taggar kommer ofta i par med en starttagg och en sluttagg.
Ex 1: <b> Denna text kommer att vara fet </b>.
Elementet startar med taggen <b>, och avslutas med den annorlunda </b> där /-tecknet visar
att det är en sluttagg. Som tidigare nämnts följer alla markup-språk en viss struktur och detta
gäller även HTML.
Ex 2:
<!doctype HTML PUBLIC ”-//W3C//DTD HTML 2.0 Transitional//EN”>
<html>
<head>
<title> Detta är titel på browser fönstret </title>
</head>
<body>
Detta kommer att vara vanligt text med en radbrytning.<br>
<h1>Detta är rubrik formatering med automatisk radbrytning</h1>
</body>
</html>
Överst i ett HTML-dokument finner vi doctype; detta informerar om vilken standard HTMLkoden skall följa. Den informerar alltså webbläsaren om det är en standard som den kan förstå
och tolka eller om det är en nyare standard än den förstår. Taggen doctype är inte alltid
inkluderad i äldre html-dokument eftersom det är först i efterhand som man har kom på att det
fanns fördelar med att veta vilken standard som används på sidan.
Den första tagg som däremot alltid måste stå med i ett HTML dokument är <html> taggen.
Denna berättar för webbläsaren var början på dokumentet är. Sist i dokumentet hittar vi
</html>, denna berättar för webbläsaren att det är slutet på dokumentet.
Innehållet i ett HTML dokument separeras i två delar, huvud och kropp. Överst på
dokumentet hittar man <head> taggen [W3C HTML 2]. Denna indikerar start på
huvudsegmentet där saker som titel och allmänna inställningar finns med. I <head> hittar
man även metadata som är data som inte visas för användaren men kan tolkas av ex.
sökmotorer. Man definierar även vanligen sina script-funktioner i dokumenthuvudet. Slutet på
huvuddelen markeras av </head>. Direkt efter finner man <body>. Detta är kroppen på
dokumentet och talar om att det är detta som ska visas i webbläsaren. Detta kan vara allt från
vanlig text till bilder och scriptanrop.
6
Kontroll över den vanliga brödtexten är ett absolut måste och inom HTML 2.0 finns en rad
olika formateringstaggar. Man kan skapa automatiskt radbrytande stycken samt styra
placeringen av text t.ex. centrera, vänsterjustera och högerjustera. Det finns även taggar för
att skapa listor och citat.
Ex 3:
<center><h1>En centrerad titel</center></h1>
<p>Detta element kommer att tolkas som en paragraf.
Paragrafelementet har automatisk radbrytning</p>
<ul>
<li>List element nr1
<li>List element nr2
</ul>
Bilder och länkar
Ett av de grundläggande kraven för HTML var just hyperlänkar. Hyperlänkar inom html kan
peka till en utomstående sida eller till en viss plats på den aktiva sidan. För detta används
taggen <a> (anchor). Anchor-taggen använder sig av så kallade attribut för att tala om vad
den ska göra. Placerar man href attributet efter anchor taggen vill man utifrån det elementet
hoppa till en annan hemsida respektive hoppa inom den aktiva sidan.
Ex 4: <a href=”www.w3.org”>Klickbar text som leder till wc3s hemsida</a>
Som tidigare nämnts kan anchor även peka inom en och samma sida, för detta måste man
använda sig av name attributet som kommer att skapa en flaggad position inom HTMLkoden.
Ex 5:
<a href=”#hopp”>klicka här för att hoppa ned i texten</a>
<a name=”hopp”>Välkommen!</a>
Man är dock inte alltid tvungen att använda sig av vanlig text för hyperlänkar. En bild kan
även den fungera som en hyperlänksmarkör. Inom HTML 2.0 är man dock bunden till de
enklare bildformaten, gif och jpg. Här nedan ser vi ett exempel på hur man hyperlänkar en
bild.
Ex 6:
<center>
<a href=”www.w3.org”>
<img src=”bild.gif” alt=”Din webbläsare kan inte sen denna bild”>
</a></center>
HTML 3.0 och HTML 3.2
HTML 3.0 släpps 1997 bara några månader senare utkommer HTML 3.2 [W3C HTML 3].
Den stora pionjären inom webbläsarmarknaden var Netscape. Netscape fungerade som en
drivkraft för HTML 3.2. Nya finesser var textformatering, tabeller och möjligheten att lägga
till små program i html-sidorna (applets).
7
Möjligheten att representera text i olika stilar och färger i dokumenten kom genom
användandet av taggen <font>. Man kunde även använda sig av olika attribut i <body>
elementet [W3C HTML 3]. Det är möjligt att bestämma färg på de olika delarna i <body>
såsom hyperlänkar, vanlig text eller bakgrunden. Bildstödet var bättre och möjligheten att låta
en bild täcka bakgrunden fanns också. Här kommer ett exempel på lite av de nya taggar som
infördes i HTML 3.2 och hur de användes för att rita en tabell, samt styra backgrunden på
webbsidan.
Ex 1 HTML 3.2:
<!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 3.2 FINAL//EN”>
<html>
<head>
</head>
<body text=green background=”bild.gif”>
<script type=”text/javascript”>
document.write(“Hello World!”);
</script>
<p>
<font color=”#FF0000”>Detta är röd text</font>
<p>
<table border=”1”> <! – Skapar en tabell med tillhörande rader (<tr>) och kolumner (<td>) ->
<h3>En liten tabell:</h3>
<tr>
<td>Rad 1, kolumn 1</td>
<td>Rad 1, kolumn 2</td>
</tr>
<td>Rad 2, kolumn 1</td>
<td>Rad 2, kolumn 2</td>
</table>
</body>
</html>
HTML 4.0
De två största nyheterna med HTML 4.0 var frames och styles. Med styles ersatte man den
gamla font-taggen; font-inställningar gjordes antingen direkt på ett stycke inne i dokumentet
eller genom användningen av stylesheets [W3C HTML 4]. Stylesheets förflyttar fontediteringen utanför själva html-dokumentet. Standard är att man sparar informationen i egna
css-filer men styles kan även definieras i <head> taggen. Om man använder sig av externa
stylesheets kan man enkelt byta layout på hela eller flera hemsidor genom att göra
förändringar i css-filen. Det går även att hämta fontinformation från olika css-filer.
Frames är en teknik för att kunna dela upp en webbsida i mindre delar. Man kan på ett enkelt
sätt styra hur strukturen på en webbsida ska se ut och få innehållet att hamna i olika spalter.
Man skapar en separat sida som innehåller ett frameset (ramverks definition) som även
innehåller vilka sidor som ska användas i ramarna. Utifrån denna sida kan man sedan bara
ändra vilken ram (frame) som ska uppdateras med ny information.
8
Ex 1 HTML 4.0 Frames:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!—Skapar ett frameset med en 20% bred vänstermeny och en 80% bred högermeny Æ
<frameset cols="20%,80%">
<frame src="sida1.html">
<frame src="sida2.html">
</frameset>
</body>
</html>
Man utökade även script-stödet och bakåtkompabiliteten förstärktes genom bättre kontroller
om webbläsaren kunde hantera scripts. Man gjorde sidorna mer lättnavigerade för de
webbläsare som inte förstod script-koden. Ett exempel på detta med scripts ser vi här.
Ex 1 HTML 4.0:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel=”stylesheet” type=”text/css” href=”minstylesheet.css”>
</head>
<body>
<!-- Detta är en kommentar kan bara ses vid editering av HTML filen -- >
<script type=”text/javascript”>
<!-document.write(“Hello World!”);
//-- >
</script>
<noscript><h1>Din webbläsare stöjder inte JavaScript</h1></noscript>
<p style=”color: red; margin-left: 50px”>
Denna text följer inga stylesheets.
</p>
</body>
</html>
I exemplet kan vi se användandet av kommentartaggen i script-elementet. Problemet låg i att
om en webbläsare inte kunde hantera script kommandon, skrevs informationen i scriptelementet ut som vanlig text på hemsidan. Genom att användanda kommentartaggen i scripten
var det bara webbläsare som kunde hantera scripts som förstod att det inom kommentar skulle
köras som script. De andra webbläsarna struntade helt enkelt i det som stod där. Men för
kunna köra alternativ HTML-kod eller ge ett felmeddelande införde man <Noscript>
elementet [W3C NOSCRIPT].
XHTML 1.0
XML (extensible markup language) är ännu en standardiserad form av ett markup-språk som
härstammar från SGML. XML används för att representera data. Innehållet i ett XML
9
dokument är omständligt och får absolut inte innehålla minsta fel. Med XML får man
bekvämligheten av en text fil och lika bra informationslagring som i en binärfil.
XHTML är HTML kombinerat med XML. [W3C XHTML]Detta ger dokument som tack vare
HTMLs bakåtkompabilitet och XMLs felfria struktur kan läsas av i princip alla webbläsare,
även på de handhållna datorer och mobiltelefoner som inte har resurser att tolka dåligt skriven
HTML.
De största nyheterna i XHTML är just att strukturen är mycket striktare. I de gamla HTML
standarderna spelade det ingen roll om taggarna var skrivna med versaler eller gemener, men i
XHTML måste taggar och attribut vara skrivna i gemener. Alla element måste ha en
avslutande tagg, vilket inte alltid var nödvändigt i de äldre versionerna, då webbläsare själva
kunde placera bortglömda taggar. Ensamma taggar måste även avslutas med /-tecknet.
Framestekniken från HTML 4.0 blev utbytt mot en ny och förbättrad version som kallades
lager. Ett lager skapas med taggen <DIV>. Medan frames delade upp en webbsida i mindre
delar använder sig lager av en teknik som skapar geometriska områden i en webbsida som kan
tilldelas olika effekter. Man kan tack varare att man har geometriska områden på skärmen få
informationen att visas precis så som man vill ha den. Dessutom kan lager dynamiskt
anpassas sig efter vilken upplösning som den aktuella webbläsaren har på sin skräm.
Ex 1 XHTML 1.0:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel=”stylesheet” type=”text/css” href=”minstylesheet.css”> <! -- hämtar en stylesheet ->
</head>
<body>
<div id=”main”> <! – Skapar ett lager - ->
<!-- Detta är en kommentar kan bara ses vid editering av HTML filen -- >
<script type=”text/javascript”>
<!-document.write(“Hello World!”);
//-- >
</script>
<noscript><h1>Din webbläsare stöjder inte JavaScript</h1></noscript>
<p style=”color: red; margin-left: 50px”>
Denna text följer inga stylesheets.
</p>
</div>
10
</body>
</html>
I detta exempel skapas ett lager som sedan all information skrivs ut i. En viktig skillnad är
även i vilken ordning som taggar skrivs. Man får inte avsluta en tagg inuti en annan. Den tagg
som startas först är den som ska avslutas sist. Detta ser vi ett exempel på här nedan.
Ex 2:
<h1><center>En testrubrik</h1></center> - Giltigt i alla HTML standarder under XHTML
<h1><center>En testrubrik</center></h1> - Giltig XHTML
XHTML 1.0 är den standard som bör användas på webben idag och det är även den som
World Wide Web Consortium (W3C) anser vara den officiella HTML standarden. [HTML]
Framtiden
Framtiden för HTML (XHTML) ser ljus ut. Det är någonting som är på frammarsch och
håller på att utvecklas. En Working draft [W3C XHTML 2.0] för XHTML 2.0 har släppts till
utvecklare så att dessa ska få tycka till om den nya standarden. Det är även ett nytt system för
ramar (frames) under utveckling. En av de stora nyheterna i XHTML 2.0 är att ett flertal
element tas bort för att migrera till XML. <IMG> taggen som användes för att infoga bilder
kommer tas bort. Den kommer att ersättas av <OBJECT> som sedan har ett type-attribut för
att ange vilken typ av objekt som ska infogas i dokumentet. Working Draften är ca sex
månader gammal och den nya standarden kommer antagligen att ersätta XHTML 1.0 inom en
snar framtid. Då blir HTML 4.0 helt uträknat och de aktuella standarderna kommer att vara
XHTML 1.0 och XHTML 2.0.
11
Referenser
[W3C HTML 2]
W3C “Hypertext Markup Language 2.0”
<http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.3> (15 Oct, 2005)
[W3C HTML 3]
W3C “Hypertext Markup Language 3.0”
<http://www.w3.org/MarkUp/html3/docbody.html> (15 Oct, 2005)
[W3C HTML 4]
W3C “Hypertext Markup Language 4.0”
<http://www.w3.org/TR/1999/REC-html401-19991224/present/styles.html> (15 Oct, 2005)
[W3C NOSCRIPT]
W3C “Hypertext Markup Language 4.0”
<http://www.w3.org/TR/1999/REC-html401-19991224/interact/scripts.html#h-18.3.1> (15
Oct, 2005)
[W3C XHTML]
W3C “XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)“
<http://www.w3.org/TR/html/> (15 Oct, 2005)
[W3C XHTML 2.0]
W3C “XHTML™ 2.0, W3C Working Draft 27 May 2005”
<http://www.w3.org/TR/2005/WD-xhtml2-20050527/> (15 Oct, 2005)
[RAGGET98]
Dave Raggett, Jenny Lam, Ian Alexander and Michael Kmiec “Raggett on HTML 4”.
Addison Wesley Longman 1998. ISBN 0-201-17805-2.
<http://www.w3.org/People/Raggett/book4/ch01.html>
12