|
Välkommen!
Vissa delar av HTML behandlas ej här - exempelvis formulär
("forms"), "style-sheets" och "image-maps". Fullständiga tag- och
argumentlistor finns ej heller.
Den kunskapshungrige läsaren
uppmanas därför att komplettera detta dokument med
information på Nätet eller en bok i HTML. Se även referenserna i
slutet av dokumentet.
Upphovsmannen till WWW och HTML är Tim Berners-Lee, som då arbetade i CERN - hans ursprungsidé var att utbyta information med forskargrupper etc. i ett nätverk.
".html" eller
".htm".
HTML använder sk tags, som vi
något svengelskt kommer att kalla "taggar" i
fortsättningen, för att ge information till webläsare
om hur dokument ska se ut.
En tag är ett kommando omgivet
av < >-klamrar. Taggar kan ha argument, som
står innanför klamrarna, samt en avslutande tag (se
exemplen nedan).
Om argumentet antar ett värde som bestå av mer än ett ord
eller ett tal måste värdet omslutas av citationstecken -
dock är det en god vana att alltid använda citationstecken.
Principen för HTML är att taggarna gör saker med dokumentet - det kan röra sig om textformatering, radbrytning, infogande av bilder, mm mm. Webläsaren vet hur varje tag ska tolkas.
Enkel tag
<TAG>
Tag med argument
<TAG ARGUMENT1="värde 1"
ARGUMENT2="värde 2" ARGUMENTn="värde n">
Tag med sluttag
<TAG> text som taggen påverkar
</TAG>
Tag med sluttag och argument
<TAG
ARGUMENT1="värde 1" ARGUMENT2="värde 2"
ARGUMENTn="värde n"> text som taggen påverkar
</TAG>
En lista av taggar, kanske inte ej så ofullständig, finns här.
Det finns rekommendationer om hur HTML-dokument "bör" se ut och vad god HTML är - det är ganska naturligt om man beaktar hur många aktörer som är inblandade. Dock, av samma skäl, är webläsarna snälla - HTML-koden kan se ut lite hur som helst.
Fler än ett blanktecken ignoreras, och
likaså returtecken. Om ett kommando råkar vara felaktigt
så hoppas det över. Om ett argument är felaktigt
så ignoreras just det argumentet. Vidare hoppas allt inom
<!- --> över - det är så man skriver
kommentarer till koden.
Ett exempel på god HTML är indentering av koden samt VERSALER i taggarna och ARGUMENTEN. Det är givetvis för att det anses ge ökad läsbarhet.
Ett HTML-dokument delas traditionellt in i huvud (head) och kropp (body).
Huvudet kan innehålla
<TITLE>-taggen, som innesluter dokumentets titel
(denna visas längst upp i listen hos de flesta webläsare),
samt diverse information om dokumentet som ej har med utseendet att
göra.
Kroppen innehåller grovt sagt allt som har med
dokumentets utseende att göra, och är nästan alltid den
större delen. I själva verket kommer nästan alla taggar
som vi beskriver i det här dokumentet vara
BODY-taggar.
Ett HTML-dokument ska enligt rekommendation ha den här formen:
<HTML>
<HEAD>
<!- diverse HEAD-taggar och vanlig text -->
</HEAD>
<BODY>
<!- diverse BODY-taggar och vanlig text -->
</BODY>
</HTML>
Observera att det är en rekommendation. Följ den, dock, om du vill vara så kompatibel som möjligt, vilket är en human inställning (det kan även vara tecken på affärssinne).
Argumenten
är i nämnd ordning:
text, bgcolor,
link, alink (active link; den färg en
länk antar precis när den aktiveras, dvs tex. klickas
på), vlink (visited link; en länk man redan
besökt), samt background.
Alla ovanstående argument tar en färg (se mer om färger
nedan), utom background, som tar en adress till en bild.
BODY
Nedanstående kod ger ett dokument med svart bakgrund, gul text och gul hypertext (se avsnittet om länkar). Hypertexten kommer att vara vit då den klickas på. Besökta länkar kommer att visas i grå färg.
<BODY BGCOLOR="black" TEXT="yellow" ALINK="white"
LINK="yellow" VLINK="grey">
Man kan även specificera storleken, med <BASEFONT
SIZE="storlek">, där storlek kan vara
absolut, tex. 5, eller relativ, tex. +2.
<H1></H1>, ... ,
<H6></H6>.ALIGN, som anger rubrikens justering. Det kan anta
något av "left", "center" och "right".<CENTER>).
Kod:
<H1>Rubrik 1</H1> <H3 ALIGN="center">Rubrik
3</H3> <H6 ALIGN="right">Rubrik 6</H6> Vanlig text
Resultat:
Vill man skriva mer än ett blanktecken i rad kan man använda (non-blank space).
Allmänt kan man skriva
många speciella tecken med hjälp av &-notation.
Om vi t.ex. vill att alla användare ska kunna se å, ä,
ö korrekt bör vi använda respektive å,
ä, samt ö. (Å, Ä,
Ö ges av respektive & Aring;,
Ä, samt Ö).
För ytterligare några speciella tecken, se
http://www.tdb.uu.se/~tdb1/privat/forant/html/taggar.html#SP.
Raderna bryts implicit när det behövs, precis som i ordbehandlare, men man kan även bryta raden explicit med <BR> (break).
<HR> (horizontal ruler) stoppar in en avgränsande linje, liknande linjerna runt exemplen i detta dokument (som för övrigt är skrivet i HTML).
Vi
har sett hur man kan specificera färgen och fontstorleken
på en standardtext med hjälp av <BODY>.
Vidare kan man
använda <FONT>-taggen runt valfri
text. <FONT> har naturligtvis högre prioritet
än standardtexten.
Här ser Ni olika fontstorlekar:
1 2 3 4 5 6 7
#r1r2g1g2b1b2
,
där det första sifferparet anger graden rött osv. Ju
lägre siffra, desto mörkare - svart är
"#000000"."white" istället
för "#FFFFFF".
http://www.w3.org/TR/REC-html40/types.html#h-6.5
Formatmallar ("style-sheets") är ett kraftfullt verktyg
för att formatera tecken, som faktiskt kan göra allt
ovanstående och lite till.
Den intresserade kan läsa
mer här:
http://www.w3.org/TR/REC-html40/present/styles.html
Kod:
<FONT COLOR="maroon" FACE="Bookman Old Style" SIZE="+1">
<I> Det här är ett exempel på hur man kan
använda <FONT>... </I> </FONT>
Resultat:
Det här är ett exempel på hur man kan använda <FONT>...
<HTML>
I Netscape kommer sidan att se ut så här:
<HEAD>
<TITLE>Min
lilla hemsida</TITLE>
</HEAD>
<BODY>
<H1 ALIGN="center">Välkommen!</H1>
Det här är min lilla hemsida.<BR>
Den saknar innehåll just nu, men jag arbetar på
det...
<P>
Avsikten med den här
sidan är att presentera mig själv.
<HR>
<H2>Om mig</H2>
<FONT
SIZE=+2>För närvarande går jag en kurs där jag lär mig HTML. Om ett
par veckor kommer därför den här sidan att vara MYCKET
snyggare.</FONT>
<HR>
</BODY>
</HTML>
<B>bold</B>,
<I>italic</I>,
<U>underlined</U>,
<STRIKE></STRIKE>.
Liksom de fysiska stilarna har att göra med textens "fysiska"
egenskaper, har de logiska att göra med textens "syfte".
Exempel på dessa stilar är <ADDRESS> -
används runt text som har med adresser att göra,
t.ex. författarens namn och e-mail-adress;
<CITE> - för att citera text;
<CODE> - för kodexempel;
<BLOCKQUOTE> - för att citera ett längre avsnitt
(block) med text.
Kod:
<CODE>Code</CODE> <TT>Typewriter</TT>
<EM>Emphasis</EM> <I>Italic</I>
<CITE>Cite</CITE> <ADDRESS>Address</ADDRESS>
<BLOCKQUOTE>Blockquote</BLOCKQUOTE>
<STRONG>Strong</STRONG> <B>Bold</B>
Resultat:
Code Typewriter Emphasis Italic
Cite
BlockquoteStrong Bold
Notera att på de flesta webläsare, så kan man inte
se skillnad på vissa fysiska och logiska stilar, t.ex. kursiv
stil och adresstil (observera dock hur <ADDRESS>
bryter raden i exemplet ovan).
Det är trots det en god vana
att tänka över sitt användande av stilarna - det kan
finnas användare som vill/kan behandla dem olika.
<PRE>
("pre-formatted").Kod:
<PRE>
___ _
\ / )
=========
___/ \ / \___
/ /\ \ ] / /\ \
( q-----( ) ( o )
\___/ [ \___/
</PRE>
Resultat:
___ _
\ / )
=========
___/ \ / \___
/ /\ \ ] / /\ \
( q-----( ) ( o )
\___/ [ \___/
(Okänd konstnär.)
Samma sak utan <PRE>:
___ _ \ / ) ========= ___/ \ / \___ / /\ \ ] / /\ \ ( q-----( ) ( o ) \___/ [ \___/
| Kod: | Resultat: |
<UL>
|
|
<LI> listelement (diverse text)
| |
<LI> ett till listelement
| |
<LI> ännu ett listelement
| |
</UL>
|
Numrerade listor skriver man på motsvarande sätt, fast
med <OL> (ordered list).
Det går att ha olika räknare - romerska siffror, bokstäver, etc.,
såväl som olika "klattar" för <UL>. Det gör
man med argumentet TYPE. Vidare kan man ange vilket
nummer listan ska börja på, med START.
Mer om listor; se taggar.html#LISTOR
De grundläggande taggarna vid tabellskapande
är <TABLE>, <TR> ("table
row") och <TD> ("table data").
Kod:
<TABLE BORDER=1 CELLPADDING=10 CELLSPACING=4>
<TR>
<TD> Rad 1, kolumn 1
<TD> Rad 1, kolumn 2
</TR> <!-- slut rad 1 -->
<TR>
<TD> Rad 2, kolumn 1
<TD> Rad 2, kolumn 2
</TR> <!-- slut rad 2 -->
</TABLE>
Resultat:
| Rad 1, kolumn 1 | Rad 1, kolumn 2 |
| Rad 2, kolumn 1 | Rad 2, kolumn 2 |
<TABLE> har att göra med tabellens
generella utseende; justering, cellernas avstånd, etc.
Dess argument är ALIGN ("left", "right" eller
"center"), BORDER (kantlinjens tjocklek, som även
kan vara 0), CELLPADDING (cellinnehållets
avstånd till kantlinjerna), CELLSPACING
(avståndet mellan cellerna) och WIDTH (tabellens
bredd i pixels, eller i procent av fönstrets bredd).
Då man har skrivit <TABLE>-taggen, är
det tänkt att man ska definiera tabellens innehåll radvis
och cellvis, i den ordningen. Man skriver en radtagg
<TR>, och därefter den radens celler
från vänster till höger med <TD>.
<TR> har argument ALIGN och
VALIGN ("vertical alignment") som definierar
cellinnehållets justering relativt kantlinjerna på just
"den här" raden. Den senare kan anta värdena "top",
"middle", "bottom" och "baseline".
<TD> har
även den argument ALIGN och VALIGN - om
man vill ha annan justering än radens. Yttermera har den argument
COLSPAN och ROWSPAN för att definiera
hur många kolumner respektive rader cellen täcker.
Vidare kan man piffa upp tabellen med t.ex. rubrik
(<CAPTION>) och med interna cellrubriker
(<TH> - table header).
Kod:
| År | Bilförsäljning | ||
|---|---|---|---|
| Volvo | Saab | VW | |
| 1998 | 11 | 12 | 13 |
| 1999 | 21 | 30 | 40 |
| År | Bilförsäljning | ||
|---|---|---|---|
| Volvo | Saab | VW | |
| 1998 | 11 | 12 | 13 |
| 1999 | 21 | 30 | 40 |
För att skapa en länk använder man ankare
<A>-taggen runt det man vill ska vara
hypertext (mao det som är klickbart, och som oftast visas som
understruken blå text). Adressen till objektet definieras i
HREF-attributet till <A>.
Adresser anges infattade i sk URL (Uniform Resource Locator), som
anger hur webläsaren ska hämta/tolka objektet.
Exempel på URL:
http://www.sunet.se/
Här anger http att
webläsaren ska använda protokollet http (HyperText Transfer
Protocol).
Ex. Bild som hypertext, koden
Om objektet man länkar till är i samma filhierarki som HTML-dokumentet behöver man inte ange fullständig adress, utan det räcker med en sk relativ adress. Man använder något av dessa skrivsätt för relativa adresser:
Fördelen att använda relativa adresser inom ett paket sammanhängande HTML-dokument (mao dokumenten i en site - ens egen tex.) är att man slipper en massa länkändrande om man flyttar på filerna lokalt (eller byter värd). Det finns inga sådana fördelar med relativa länkar till externa dokument.
Antag att vi har följande filhierarki:
C:/ med kataloger bilder och
dikter. Underkataloger till bilder: frukter
och djur.
Antag vidare att vi befinner oss i roten. Då kan vi referera
till filen banan.jpg (som är i lämplig katalog)
på följande sätt:
file://C|/bilder/frukter/banan.jpg
/bilder/frukter/banan.jpg
bilder/frukter/ och ville referera till en
bild i djur, skulle vi kunna använda den relativa adressen,
../djur/orangutang.jpg.file://C|/bilder/djur/orangutang.jpg.Notera, förresten, att kolontecknet i "C:" skrivs som en "stav": '|' (Alt Gr + <).
<A NAME=namn>. För
att länka till ankaret refererar man till #namn. Det
går utmärkt att referera till ankare i andra dokument
än det aktuella.
I det här HTML-dokumentet lektion.html kan vi skapa
en ankare till platsen Tabeller genom att skriva
<H2><A NAME="tabell"> Tabeller </A> </H2>
För att länka dit från samma dokument, använder vi den relativa adressen:
<A HREF="#tabell"> Gå till tabeller </A>
Vi kan även referera till
lektion.html#tabell. Som alltid går det att använda absolut adress.
<IMG> med
diverse argument.SRC (anger
källan, dvs bildens URL, och är mer eller mindre
obligatoriskt, såvida man inte vill infoga en tom bild); ALT ("alternative" - en beskrivning av bilden som visas
innan bilden har laddats. Användare inte vill eller kan se bilder
ser denna istället); BORDER (bredd på
ev. ram runtom); HEIGHT och WIDTH (om
dessa anges så laddas bilden snabbare. Man kan även
ändra storlek på bilden mha dessa); HSPACE och VSPACE (anger det horisontella
resp. vertikala avstådet mellan bilden och omgivande objekt);
ALIGN ("left", "right", "top", "middle" eller
"bottom" - anger hur bilden ställer sig i förhållande
till närmast efterkommande objekt/text).
Man kan även länka till bilder, som vi har sett
tidigare.
Skillnaden är att om man länkar så kan
användaren ha möjlighet att styra hur bilden ska visas i
webläsarens inställningar - kanske med ett speciellt
program. Standardinställningen brukar vara att visa bilden i ett
eget fönster.
Bilder som verkligen "hör till" dokumentet bör dock ej länkas till (utan infogas). Exempel på sådana är textavgränsare, knappar, anfanger och andra dekorationer.
Man kan länka till bilder, men man kan även göra
bilderna sjäva till länkar (hypertext, eller kanske
"hyperbilder"). Det är mycket enkelt - placera helt enkelt
<IMG> innanför <A>.
En
mer avancerad variant är att definiera "klickbara" områden
på bilder, sk "image-maps". Läs mer om detta i en
lärobok.
Det går att ha bakgrundsljud i HTML-dokument mha speciella
web-läsar-pecifika taggar. Exempelvis tar Netscape's
<EMBED> och Internet Explorer tar <BGSOUND>.
Infoga ljudfil (Netscape):
<EMBED SRC="file://C|/Musik/Apornas sång.mp3" LOOP="true">
Infoga bild:
<IMG SRC="http://www.bildlandet.se/djur/apa05.gif" ALT="En liten
grobian" HEIGHT="120" WIDTH="90">
Extern video:
<A HREF="http://www.filmstallet.se/apfilmer/orangutanger.mov">
Se en filmsnutt om orangutanger </A>
Tillvägagångssättet är detta: med
<FRAMESET> definierar man indelning av
fönstret. Man fyller delarna med hjälp av
<FRAME>-taggar.
Alla delfönster kan ges namn, så att de kan refereras
till då man vill öppna något i dem. Vissa taggar,
däribland <A>, tillåter ett argument
TARGET, där fönstrets namn kan
anges. (TARGET kan dessutom sättas till _blank,
_parent, _self eller _top).
<FRAMESET> tar två argument:
COLS och ROWS. Deras värde kan vara
absolut - ett antal pixels, eller relativt - i procent eller angivet
med asterisk (*) som betyder "all återstående
plats".
<FRAME> tar en hel del argument, nämligen:
NAME (delfönstrets namn, som TARGET
använder), SRC ("source" - adressen till det som ska
visas i fönstret), MARGINHEIGHT och
MARGINWIDTH (anger storlek på marginalerna),
NORESIZE (delfönstrets storlek kan ej ändras),
SCROLLING (kan anta "auto", "yes" eller "no", och anger
om rullningslisten ska vara synlig eller ej. Auto är default och
betyder att rullningslist finns om det behövs),
FRAMEBORDER ("yes" eller "no" - anger om delfönstret
ska ha en synlig kant eller ej), FRAMESPACING (anger
avståndet mellan delfönster).
Det finns en tag, <NOFRAMES>, som låter en
definiera hur dokumentet ska se ut i webläsare som inte kan
(eller vill) visa frames. Endast det inuti taggen visas.
<NOFRAMES> skriver man inom
<FRAMESET>.
Notera att
<BODY> ligger i <NOFRAMES>, och
eftersom att <NOFRAMES> ej behöver finnas i
alla frame-dokument, så behöver följdaktligen ej
heller <BODY> det.
Vi definierar en typisk FRAMESET - en vertikal uppdelning
av fönstret i en meny-del och en "informations"-del.
Tanken
är att ena delen ska innehålla en sorts meny med
(främst interna, dvs till dokument i samma site) länkar,
vilka ska visas i den andra.
<HTML>
<FRAMESET COLS="200,*"> <!- ena 200
pixels bred, andra täcker återstående plats
-->
<FRAME SRC="meny.html"> <!-
vänster frame -->
<FRAME SRC="main.html"
NAME="info"> <!- höger frame -->
</FRAMESET>
<NOFRAMES>
<BODY>
Hej, tyvärr kan du inte se
mina fina frames.
Här kommer
innehållet utan, för din skull:
<!- och så vidare -->
</BODY>
</NOFRAMES>
</HTML>
Ovanstående skulle vi lämpligen skriva i
index.html. Då skulle webläsaren dela upp
fönstret som vi skrev, och sedan försöka visa
meny.html i vänstra fönstret och
main.html i det högra.
meny.html skulle i princip kunna ha det här
innehållet:
<HTML>
<HEAD>
<TITLE>Meny</TITLE>
</HEAD>
<BODY>
<STRONG>Min lilla
meny<STRONG>
<MENU>
<LI> Läs om mina <A HREF="hobbys.html"
TARGET="info">hobbyer</A>
<LI>
Mina <A HREF="linx.html">favoritlänkar</A>
<LI> Tankar kring <A
HREF="min_chokladsida.html" TARGET="info">choklad</A>
<LI> <A
HREF="mailto:mig@minaddress.se">Kontakta mig</A>
</MENU>
</BODY>
</HTML>
Klickandet på t.ex. "hobbyer" ovan, skulle leda till att
hobby.html öppnades i fönstret
info, dvs det högra.
Kvällskursens VT01-hemsida använder frames. Kolla gårna index.html och övriga sidor genom att använda View-Page Source och View-Page Info.
| Om taggar | http://www.tdb.uu.se/~tdb1/privat/forant/html/taggar.html |
| Om tabeller | http://www.tdb.uu.se/~tdb1/privat/forant/html/tabeller.html |
| Om fördefinierade färger | http://www.w3.org/TR/REC-html40/types.html#h-6.5 |
| Om "style-sheets" | http://www.w3.org/TR/REC-html40/present/styles.html |
| Stilguider, HTML-specifikationer m.m. | href=http://validator.w3.org/ |