Internett er fullt av informasjon. Det som kjennetegner mesteparten av denne informasjonen er at den er formulert i et språk som heter HTML. Tanken bak HTML er at man har et dokument hvor man har markert overskrifter, referanser, tabeller og punktlister, dvs. man forteller hvordan dokumentet er oppbygget. Oppgaven for nettleseren blir så å presentere denne informasjonen på en lettoppfattelig måte for brukeren.
Brukeren behøver ikke nødvendigvis å se informasjonen på en skjerm, det kan være hun har fått informasjonen skrevet ut på papir. Hvis brukeren er blind foretrekker hun kanskje at datamaskinen leser opp informasjonen for henne, eller viser den på en Braille-list. Informasjonen kan også bli behandlet maskinelt, for eksempel av en søkemotor, som legger særlig merke til overskrifter og avsnitt og kan optimalisere søkene sine på den måten.
Det er derfor viktig å skjønne teknologien som ligger bak, slik at du kan lage dokumenter som er leselige av flest mulig. På dette kurset vil du ikke bare lære teknologien, men også hvordan du kan bruke denne på en enkel og oversiktlig måte, slik at du skjønner hva du driver med og ikke gjetter på måfå.
m1 (fra gr, -taks av taxis 'ordning, oppstilling')
Syntaks er nødvendig for å forklare hvordan man kan uttrykke seg i HTML. Syntaksen sier ganske enkelt hvilke tegn og nøkkelord du kan bruke for å strukturere dokumentet.
          For å strukturere informasjonen i et dokument plasserer man
          dem i elementer. Et element kjennetegnes ved at det starter
          og avslutter med en såkalt tag. Tagger gjenkjennes lett ved
          at de er omkranset av tegnene < og
          >.
        
Eksempel:
<p>
    Dette er et eksempelavsnitt. Inni et eksempelavsnitt
    skriver man eksempelsetninger. Eksempelsetninger skrives
    som alle andre setninger, bare at de er idiotiske
    og ikke har noen mening.
</p>
          
        
          I eksempelet ser vi at vi starter avsnittet med
          <p>, og avslutter det med
          </p>. <p> angir
          at dette er et avsnitt, p for paragraph på engelsk.
         
Eksempel:
<p>
    Dette er et eksempelavsnitt.
    Inni et eksempelavsnitt skriver man eksempelsetninger.
          Kort sagt.
</p>
           
           Avsnittet kan bli fremstilt slik i en visuell nettleser:
Dette er et eksempelavsnitt. Inni et eksempelavsnitt skriver man eksempelsetninger. Kort sagt.
Alle linjeskiftene og ekstra mellomrom blir glatt ignorert i den endelige fremstillingen til brukeren. Dette må man alltid ha i tankene, slik at man ikke bare trykker [enter] i teksteditoren og håper at da blir det nytt avsnitt på magisk vis. Samtidig er dette en styrke, ved at man kan skrive selve HTML-koden på en måte som gjør det enklere å se strukturen, ved å bruke mellomrom og linjeskift fornuftig. Vi skal se mer på hvordan du kan skrive ryddig kode senere.
HTML kommer med en rekke forskjellige elementer som kan brukes. Elementene kan grovt sett deles inn i to kategorier, blokkelementer og linjeelementer. Linjeelementer er elementer som kan følge hverandre på samme linje, som for eksempel de forskjellige ordene i et avsnitt (elementene flyter langs linjen). Blokkelementer er elementer som blir adskilt fra hverandre vertikalt, som avsnitt og overskrifter. Linjeelementer kan kun inneholde andre linjeelementer, mens blokkelementer som regel kan inneholde linjeelementer. Noen blokkelementer kan også inneholde andre blokkelementer.
          La oss konkretisere litt nøyere ved å introdusere noen nye
          elementer. Linjeelementet em
          (emphasis på engelsk) kan brukes til å
          angi at deler av teksten er viktigere og bør utheves ifra
          den vanlige teksten, f.eks. ved hjelp av kursiv eller fet skrift,
          eller kanskje ved hjelp av en annen farge eller
          hvis det er en talesyntese som leser dokumentet kan datamaskinen
          lese ordet mer klart ved å lese det sakte.
          Hvis noe skal utheves særskilt kan man bruke elementet
          strong.
        
Eksempel:
<p>
    Dette er et kort <em>avsnitt</em>. Avsnitt brukes
    til å gjøre teksten mer <strong>leselig</strong>.
</p>
          
          Avsnittet kan bli fremstilt slik i en visuell nettleser:
Dette er et kort avsnitt. Avsnitt brukes til å gjøre teksten mer leselig.
          Som nevnt er em et linjeelement og det vil derfor
          være feil å ha et avsnitt innenfor elementet.
          <em><p>Blapper smaker
          godt</p></em>
          vil ikke være riktig, og resultatet i forskjellige
          nettlesere blir udefinerbart. Noe som er enda viktigere er å
          huske å avslutte elementene, og det i samme rekkefølge som de
          er startet. Det vil si at du ikke må glemme sluttagene, og
          ihvertfall ikke skrive <em> Flapp med <strong>
          brød </em> er godt </strong>. Hvilket element er
          inni hvilket her? Er strong inni em, eller er
          den litt utenforbi? Nettleseren kan bli forvirret, og for alt vi vet
          kan den finne på å tolke resten av dokumentet som en del av
          em-elementet. (Netscape finner ofte på slikt)
        
           Et element kan også ha attributter, det vil si egenskaper.
           Attributtene angis bare i starttagen, ikke i sluttagen.
           Attributter er som regel alltid på formen egenskap="verdi".
           I noen tilfeller er det egentlig ikke nødvendig å ha "-fnutter
           rundt verdien, men det er enklere å være konsekvent og alltid bruke dem
           istedet for å huske og vurdere hver gang om de er nødvendige eller ikke.
           Du kan også bruke enkle apostrofer ' istedet, for eksempel
           hvis det er ønskelig å bruke tegnet " inni verdien. Hvis du
           skal angi flere attributter skiller du dem med mellomrom
           eller linjeskift, for eksempel <p align="right" id="blapp">
           Følgende eksempel vil indikere at avsnittet skal høyrestilles.
        
Eksempel:
<p align="right">
    Dette er et eksempelavsnitt. 
</p>
          
          Avsnittet kan bli fremstilt slik i en visuell nettleser:
Dette er et eksempelavsnitt.
I forrige eksempel la vi merke til at vi ikke bare angav strukturen i dokumentet, men også utseendet. Vi vil om litt kunne se hvordan dette kan gjøres på en penere måte, ved å skille struktur og utseende ved hjelp av såkalte stilsett. På den måten kan du holde selve dokumentdelen ryddig og oversiktlig.
img
          Nå skal vi introdusere et viktig element, nemlig elementet for
          å sette inn bilder. img står for engelsk image,
          og er et linjeelement, det vil si at det kommer på samme linje som teksten
          der det settes inn.
        
Eksempel:
<p>
    Dette er min beste venn: <img src="tux.png"
        alt="Tux leser avisen" /> Er han ikke søt?
</p>
          
          Avsnittet kan bli fremstilt slik i en visuell nettleser:
              Dette er min beste venn:  Er han ikke søt?
 Er han ikke søt?
            
           Eksempelet demonstrerer hvordan
          Eksempelet demonstrerer hvordan img-elementet enkelt flyter
          på linjen sammen med teksten. Dog blir det ikke særlig lekkert, den ene
          tekstlinjen blir tvunget til å være like høy som bildet. Vi skal vise at
          med litt enkel posisjonering vil bildet enkelt flyte på plass ved siden av
          teksten, nemlig ved å slenge på attributtet align="right".
          Bildet vil da istedet oppføre seg som et blokkelement og plassere seg på
          høyresiden av teksten, slik som her.
        
          Det er flere ting å legge merke til når det gjelder
          img-elementet. Vi sa tidligere at man må huske å avslutte
          alle elementene. Men hvordan avsluttes et bilde? Hva er inneholdt i
          bilde-elementet? Vel, det er bare bildet selv, så elementet blir avsluttet
          allerede i starttagen med skråstreken du ser sist,
          <img .. />. Legg også merke til at forfatteren har
          brukt linjeskift for å slippe å få hele tagen på en eneste lang
          linje. Dette er fullstendig lovlig, faktisk kan du legge inn
          linjeskift inne i attributtverdier også,
          men støtten i nettleserne for det kan jeg ikke garantere for.
        
          Det er to attributter til img-elementet som er
          obligatoriske, det er src og alt.
          Førstnevnte gir URIen til bildet
          (engelsk source), enten
          relativ eller absolutt. Hvis bildet lå i katalogen ovenfor
          katalogen HTML-dokumentet lå i kunne adressen blitt beskrevet
          som src="../bilde.jpeg".
        
          alt (engelsk alternate text) gir en
          tekst som representeres istedet for bildet i de tilfeller
          hvor nettleseren ikke har mulighet til å vise bilder, for
          eksempel en nettleser for blinde eller hvis bildet ikke finnes.
          Noen nettlesere har også mulighet for å slå av bildelasting slik at man
          slipper å vente på nedlasting av grafikk. Hvis man har brukt
          bildet til å være et menyvalg, for eksempel, så vil det være
          lurt å skrive i alt-attributtet hvilket menypunkt det er.
        
          Det er ikke alle tegn som du kan finne på å bruke som er
          like lette å få frem i et HTML-dokument. To tegn som
          du kanskje skjønner kan være problematiske er
          < og >. Disse brukes jo til å
          angi en start- eller sluttag, hvordan kan man bruke disse uten
          at det blir tolket feil? Vel, nettopp for slike situasjoner har
          man noe fint noe som heter entiteter. Entitet betyr egentlig
          bare «noe som finnes». Entiteter begynner med tegnet &
          og slutter med tegnet ;. For å skrive < og
          > kan man skrive < og
          >, som står for henholdsvis less than og
          greater than. Nå introduserte vi også et nytt problem,
          hvordan skriver vi da &? Løsningen er &,
          ampersand. Du kan uttrykke massevis av tegn på denne måten,
          for eksempel hvis du sitter i USA og skal skrive æøå uten å ha riktig
          tastatur, da kan du bruke henholdsvis æ,
          ø og å. Store bokstaver
          er Æ, Ø og
          Å.
        
          Entiteter kan benytter hvor som helst i HTML hvor du ellers kan
          skrive tekst, det vil si også i attributtverdier. Derfor må du bruke
          & hvis du for eksempel har en lenke til en URL som
          http://www.firma.com/cgi-bin/adresser.cgi?navn=Jens&avdeling=2.
        
Eksempel:
<p>
    For å angi uthevet skrift brukes starttaggen 
    <em> og sluttagen </em>
</p>
          
         Avsnittet kan bli fremstilt slik i en visuell nettleser:
For å angi uthevet skrift brukes starttaggen <em> og sluttagen </em>
Mange ganger kan det være fornuftig å bruke kommentering i HTML-koden din. Det kan være du vil notere for deg selv hva du egentlig har gjort på et finurlig sted, eller du vil kanskje midlertidig koble ut deler av et dokument, gjerne i forbindelse med feilsøking.
          Måten man kommenterer på i HTML er ved hjelp av
          starttagen <!-- og sluttagen -->.
          Alt imellom disse to blir ignorert av nettleseren. Pass på at du
          ikke bruker to (eller flere) bindestreker -- etter
          hverandre innenfor det som er kommentert ut, det slår nemlig
          av igjen kommenteringen.
       
Eksempel:
<p>
    Her er jammen meg enda et av disse avsnittene,
    altså. Alltid avsnitt.
        <!-- <img src="spennendebilde.jpg" width="640" height="480"
                alt="Oi, så spennende!"> -->
    Aldri noe spennende.
</p>
         
         Avsnittet kan bli fremstilt slik i en visuell nettleser:
Her er jammen meg enda et av disse avsnittene, altså. Alltid avsnitt. Aldri noe spennende.
          Et HTML-dokument består i sin helhet av et html-element.
          Innenfor dette elementet har man to elementer, head og
          body. I head-elementet forteller man
          ting om selve dokumentet, som kommer i body.
        
Eksempel:
<html>
    <head>
        <title>HTML på en ryddig måte - forståelse og bruk</title>
        <meta name="author" content="Stian Søiland" />
    </head>
    <body>
        <p>
            HTML er en fin måte å uttrykke seg på, man markerer
            teksten med koder, og nettleseren fremstiller teksten.
        </p>
    </body>
</html>
          
        
          Vi legger merke til to elementer innenfor head, hvorav
          et av dem er selvavsluttende. Det første elementet, title,
          angir, ja, du gjettet riktig, tittelen på dokumentet. Denne tittelen
          brukes av nettlesere på tittellinjen, i bokmerker og oversikter.
          Søkemotorer viser gjerne titlene på de forskjellige dokumentene i
          sine oversikter. Tittelen bør være kort og beskrive dokumentet.
          Du kan ikke ha noen andre elementer innenfor
          title-elementet, så du må uttrykke deg med rene ord.
          I tillegg kommer et generelt meta-element. Dette brukes
          til å angi diverse data, i dette tilfellet angir vi forfatteren av
          dokumentet.
        
          Det neste elementet, body skal inneholde hele dokumentet.
          Det er tillatt med både blokkelementer og linjeelementer innenfor,
          men jeg vil anbefale at du bare bruker blokkelementer, og har
          linjeelementene inne i blokkelementer.
        
          I et typisk dokument vil det være minst én overskrift. I dette
          dokumentet er det ca. 40 overskrifter. Overskrifter angis med
          elementer som <h1>. Tallet 1 angir her at
          overskriften er på høyeste nivå. Man kan ha underskrifter helt ned
          til sjette nivå i HTML. I nettleseren indikeres vanligvis
          overskrifter med stor skrift, og gjerne litt avstand før
          og etter.
        
Eksempel:
<h1>Tittelen på dokumentet</h1>
<h2>Første deloverskrift <h2>
    <p>Bla bla bla</p>
<h2>Andre deloverskrift</h2>
    <p>Bla bla bla</p>
    <p>Bla bla bla</p>
          
          Dokumentet kan bli fremstilt slik i en visuell nettleser:
Bla bla bla
Bla bla bla
Bla bla bla
          Det er viktig at overskriftselementene ikke blir brukt til
          andre ting enn overskrifter, og at man ikke bruker andre
          elementer istedet for overskriftselementene når det er
          snakk om en overskrift. Overskriftselementene er blokkelementer,
          men kan kun inneholde linjeelementer, slik at hvis det på en side
          er slik at et bilde egentlig er en
          overskrift kan dette gjøres slik:
          <h1><img src="overskrift.png"
            alt="Ingrids hjemmeside" /></h1>.
          Gjør man det slik vil overskriften bli markert som
          overskrift for alle som ikke kan se bildet, slik at
          overskriften ikke forsvinner i den vanlige tekstflyten.
        
En grunnleggende egenskap ved et dokument uttrykt i HTML er at det kan inneholde lenker. En lenke er en referanse til en annen ressurs, hovedsaklig på Internett. Samlingnen av alle HTML-dokumenter og tilhørende ressurser som er lenket sammen kalles World wide web.
Eksempel:
<p>
  Det var slik man fant ut at <a href="elefanter.html">elefantene</a>
  tok over verden. <a href="http://www.vg.no/">VG</a> hadde en
  artikkelserie om elefantene i 1983.
</p>
           
           Avsnittet kan bli fremstilt slik i en visuell nettleser:
Det var slik man fant ut at elefantene tok over verden. VG hadde en artikkelserie om elefantene i 1983.
Lenker presenteres gjerne som understreket tekst med en annen farge, men ved hjelp av stilsett kan du angi selv hvordan lenkene skal fremstilles i visuelle nettlesere.
           a-elementet kan inneholde
           linjeelementer, og man kan derfor bruke bilder som
           lenker, for eksempel som: <a
           href="meg.html"><img src="meg.png" alt="Meg" />.
         
Noen ganger ønsker man å gruppere en rekke elementer, enten fordi de logisk hører sammen eller fordi man ønsker å gi dem en utseendemessig egenskap ved hjelp av et stilark. Til slike anledninger har HTML to elementer som i seg selv ikke forteller noenting, men som kan inneholde andre elementer.
           Elementet div er et blokkelement, og kan brukes
           til å gruppere både blokk- og linjeelementer. Du kan tilogmed
           gruppere andre div-elementer hvis det skulle
           passe deg. For å koble elementet mot egenskaper gitt i
           stilark benyttes attributtene class og/eller
           id.
         
           Tilsvarende har en elementet span som er et
           linjeelement. Du kan bare gruppere linjeelementer innenfor
           span.
           Et typisk bruksområde for dette elementet
           er hvis du vil gi deler av et avsnitt typografiske egenskaper
           uten at du vil markere disse delene som viktige med for
           eksempel <em>.
         
Eksempel:
<div class="meny">
    <p>[menypunkt1]</p>
    <p>[menypunkt2]</p>
    <p>[menypunkt3]</p>
</div>
<p>
    <span class="fornavn">Stian</span> <span class="etternavn">Søiland</span>
</p>
           
          Teksten kan bli fremstilt slik i en visuell nettleser hvis man knytter et stilark til dokumentet hvor man har angitt egenskapene til disse elementene:
[menypunkt1]
[menypunkt2]
[menypunkt3]
Stian Søiland
Eksempel:
<ul>
    <li>Vaske bilen</li>
    <li>Hente hunden i barnehagen</li>
    <li>Lage middag</li>
</ul>
<ol>
    <li>Finn en stikkontakt</li>
    <li>Sett i pluggen</li>
    <li>Slå på fjernsynsapparatet</li>
</ol>
<dl>
    <dt>Studentutvalget</dt>
        <dd>Hjelper deg med hva det måtte være.</dd>
    <dt>Velferdstinget</dt>
        <dd>Samler inn semesteravgift og deler pengene ut igjen.</dd>
    <dt>Studenttinget</dt>
        <dd>Synser og mener ting om så mangt</dd>
</dl>
           
           Listene kan bli fremstilt slik i en visuell nettleser:
           ul-elementet inneholder en uordnet liste, det
           vil si en punktliste. Hvert av punktene angis med
           li-elementer. Kun li-elementer
           er tillatt innenfor listen, men innenfor li
           er både blokk- og linjeelementer tillatt. En ordnet liste,
           ol angir punktene på samme måte, men her blir
           hvert punkt markert med et stigende tall.
         
           dl, definisjonslisten, er litt annerledes oppbygd.
           Den består av en liste med termer og beskrivelser.
           Termen som skal beskrives angis innenfor
           dt-elementet, og beskrivelsene innenfor
           dd-elementene. Legg merke til at innenfor
           dt kan du bruke linjeelementer, mens innenfor
           dd kan du bruke både blokk- og linjeelementer.
         
Tabeller er svært nyttige når man skal presentere datamangder. En tabell består av rader og kolonner, som utgjør cellene. I HTML angis en tabell radvis, slik eksempelet vil vise.
Eksempel:
<table>
    <thead>
        <tr> <th>Navn</th>          <th>Fagområde</th>   <th>Telefonnummer</th> </tr>
    </thead>
    <tbody>
        <tr> <td>Jens Jakobsen</td> <td>Fysikk</td>      <td>91484</td> </tr>
        <tr> <td>Kari Olsen</td>    <td>Informatikk</td> <td>94815</td> </tr>
        <tr> <td>Ingrid Hauge</td>  <td>Historie</td>    <td>98482</td> </tr>
    </tbody>
</table>
           
           Tabellen kan bli fremstilt slik i en visuell nettleser:
| Navn | Fagområde | Telefonnummer | 
|---|---|---|
| Jens Jakobsen | Fysikk | 91484 | 
| Kari Olsen | Informatikk | 94815 | 
| Ingrid Hauge | Historie | 98482 | 
           Innenfor elementet tr, table row,
           er der to muligheter, th som brukes på
           header-celler, det vil si celler med en overskrift
           som brukes til å beskrive noe annet i tabellen. td,
           table data, angir vanlige tabellceller. Vi har gruppert
           tr i to elementer, thead og tbody.
           Sammen med tfoot er dette elemter som angir hvilke deler
           av tabellen som er statiske og hvilke som er dynamiske. I en veldig
           stor tabell kan nettleseren la radene inneholdt i thead og
           tfoot stå stille på skjermen mens man scroller innenfor
           tbody.
         
           Tabeller kan også (mis)brukes til utforming av et dokuments
           utseende. Siden td-elementet kan inneholde blokkelementer
           kan man plassere hele dokumentdeler innenfor hver sin tabellcelle
           for å plassere disse på skjermen slik man ønsker det. Det anbefales
           at man forsøker å bruke stylesheets i kombinasjon med
           div-elementet for å oppnå slik formattering.
         
        Vi nevnte i begynnelsen at vi ønsket å skille struktur og utseende.
        For å gjøre dette tar vi i bruk noe som kalles stilsett.
        Tenke deg at du har et dokument, fiks ferdig strukturert, med
        ferdigmarkerte overskrifter, uthevinger og inndelinger. Hva om du
        nå bare kan si at alle h2-elementer skal ha rosa
        skrift, blinke og ha et gusjegrønt bakgrunnsbilde og god avstand
        over men ikke under?
      
Vel, det kan du. Verktøyet heter CSS, som står for Cascading Style Sheets. Vi behandler bare CSS overfladisk nå, spesifikasjonen til CSS1 er såpass grei at når man har fått basisforståelsen holder det med den og litt prøving og feiling.
Et enkelt stilsett:
body {
    background-color: white;
    color: black;
    text-align: justify;
    margin: 1em;
}
h1,h2,h3,h4 {
    font-family: arial, helvetica, sans-serif;
    background-color: white;
    color: #b86;
}
        
      
        Stilsettet over setter først egenskaper for body,
        deretter for h1, h2, h3
        og h4 samlet. Alt mellom { og }
        er egenskaper som settes. Til venstre for kolon står det hvilken
        egenskap som skal settes, for eksempel color, og til høyre
        for kolon står det hva denne egenskapen skal settes til, for eksempel
        black. Man avslutter hver egenskaptilordning med semikolon.
      
        Dette stilsettet setter bakgrunnsfargen for dokumentet til hvit. I tillegg
        blir det satt en marg rundt hele innholdet av dokumentet ut ifra en
        typografisk standardstørrelse em som er relativ til
        den skriftstørrelsen som måtte gjelde for elementet.
        Teksten i body-elementet skal være
        svart, og den skal være blokkjustert.
      
        Det prinsippet til CSS nå sier er at egenskaper arves. Det vil si at
        hvis elementet body inneholder for eksempel et
        table-element, så vil innholdet i dette elementet også
        bli formattert med sort skrift og blokkjustert tekst. Noen egenskaper
        arves ikke, som for eksempel marg, iogmed at det ikke virker
        logisk at det skal settes samme marg på alle underliggende elementer.
      
        Hver av elementene h1, h2, h3
        og h4 blir gitt egenskaper for skrifttype, farge og
        bakgrunnsfarge.  Nettleseren bruker tre forskjellige stilsett på
        dokumentet før den viser det endelige resultatet til brukeren. Først
        legger den på sitt standardstilsett, som for eksempel sier at
        h1 skal være såså stor og at standardmargene er så som så.
        Deretter legger den på brukerens stilsett, og til slutt legger
        den på dokumentets stilsett. (I noen nettlesere kan brukeren dog
        bytte om på disse, slik at hennes stilsett blir brukt oppå dokumentets.)
        Det som da kan bli et problem er at brukeren kan ha oppgitt i sine
        preferanser at han liker sort skrift på brun bakgrunn for
        overskrifter. Hvis stilsettet vårt kun setter fargen på overskrifter
        til brun uten å si noe om bakgrunnsfargen, kan vi risikere at
        det kommer brun skrift på  brun bakgrunn. Derfor oppgir vi alltid
        background-color når vi oppgir color og motsatt.
      
          Et stilsett kan knyttes til et dokument på to måter. Den ene
          måten er ved å inkludere et
          <style type="text/css">-element innenfor
          <head>-elementet, det andre er å ha stilarket i
          en egen fil som man lenker inn ved hjelp av link-elementet.
          Følgende eksempel viser et dokument hvor man har kombinert disse to
          teknikkene.
        
Eksempel:
<html>
    <head>
        <title>HTML på en ryddig måte - forståelse og bruk</title>
        <link href="/stylesheet.css" rel="stylesheet" type="text/css" />
        <style type="text/css">
            body {
              background-color: white;  /* overstyrer fargene i stylesheet.css */
              text: black;
            }
        </style>
    </head>
    <body>
      ..
    </body>
</html>
          
        
          Her introduserer vi også hvordan man foretar
          kommentering i CSS. Man starter en kommentar med
          /* og avslutter med */.
        
          Hvert eneste element i HTML som er en del av elementet body
          kan ha attributtene class og id. Flere
          elementer kan ha samme verdi for class, men bare ett element i hvert
          dokument kan ha samme id.
        
Eksempel:
<p class="farge">
  <em class="farge">Viktig informasjon:</em>
  <strong id="inntaksstopp"> Det er inntaksstopp</strong>
</p>
          
          Kan formatteres med følgende stilsett:
.farge {
  color: maroon;
  background: white;
}
em.farge {
  font-size: large;
}
#inntaksstopp {
  font-family: helvetica, arial, sans-serif;
}
          
          Avsnittet kan bli fremstilt slik i en visuell nettleser:
Viktig informasjon: Det er inntaksstopp
          Legg merke til at vi kan angi egenskaper generelt for
          alle elementer som er med i klassen farge med .farge,
          og samtidig gi spesielle egenskaper til em-elementene som
          er medlem av klassen. Siste del av stilsettet gir egenskaper for det
          (eneste) elementet som har id="inntaksstopp".
        
          Det er verdt å legge merke til at bare egenskapene arves, ikke
          klassetilhørigheten. Her skiller CSS seg ifra det gamle klassesystemet
          som rådet i Europa på 1800-tallet. Dersom vi i eksempelet ovenfor
          ikke hadde hatt med class="farge" i em-elementet
          ville «Viktig informasjon» fortsatt blitt skrevet med mørkerød farge,
          for den egenskapen arver den ifra p-elementet, men den
          ville ikke fått større skrift, som er definert for
          em-elementer som er medlem av klassen farge.
        
Mange av egenskapene i CSS angir størrelser. Man vil angi hvor stor skrift man vil ha, hvor stor marg, hvor bred en ting skal være, osv. Det finnes flere måter å oppgi slike størrelser på. Den ene måten er ved å bruke absolutte størrelser, og den andre er å bruke relative størrelser.
          En absolutt størrelse vil si at et element med
          den angitte stilen vil bruke den samme størrelsen uansett hvor
          det befinner seg. Du kan oppgi absolutte størrelser i mange
          forskjellige enheter, som tommer eller milimeter, men den
          vanligste er punkter, og brukes slik: p { font-size: 12pt; }
          Du bør kun bruke absolutte enheter for medier med kjente egenskaper,
          som ved utskrift på papir.
        
          Relative størrelser, på den andre siden, kan brukes i alle
          sammenhenger. Det vanligste er å oppgi relative størrelser
          i prosent eller ved hjelp av enheten em. em
          er en vanlig typografisk enhet, og 1em er i et gitt
          typesett et kvadrat, brukt til å angi mellomrom. I mange skrifttyper er
          1em like langt som bredden av en stor M. Det viktige å få med seg er at
          1em er relativt til den aktuelle skriftstørrelsen i elementet.
        
          Størrelser i prosent % referer til foreldreobjektet. Hvis man
          oppgir at et element skal være 100% bredt vil det forsøke å
          fylle foreldreobjektet med hele sin bredde. I noen få tilfeller
          kan det være hensiktsmessig å angi størrelser i piksler med px,
          for eksempel når man setter inn et bilde og man oppgir størrelsen i CSS
          slik at nettleseren kan tegne opp dokumentet før den har hentet bildet
          for å få vite hvor stort det er.
        
Det anbefales å bruke relative størrelser der det er mulig, slik at det blir enkelt for brukeren å angi sine egne preferanser. En svaksynt bruker kan for eksempel ha satt standardskriften sin til 18 punkter så han klarer å lese teksten, selv om han jo må scrolle litt mer på websidene. Hvis du da kommer og setter overskrifter til 12 punkters størrelse og teksten til 10, så har du allerede mistet en leser. Bruker du derimot relative størrelser fornuftig kan du ønske alle velkommen.
Her er de egenskapene som du kanskje mest får bruk for. Flere er definert i spesifikasjonen.
Noe av det vanligste designere liker å spesifisere er skriftegenskaper. Vi velger å vise de vanligste egenskapene med et eksempel.
Eksempel:
blockquote {
    font-family: times, "times new roman", serif;
    font-size: large;
    font-style: italic;
    font-weight: bold;
}
          
          Et typisk sitat med dette stilsettet kan bli fremstilt slik i en visuell nettleser:
Jeg leste for en stund siden at vitenskapsfolk har oppdaget at det bak støvskyen i Melkeveien skjuler seg en planet som er mange ganger sterkere enn den solen vi er vant med å se.
          La oss ta for oss egenskapene i rekkefølge. font-family
          er en liste over foretrukne skrifttyper. Det er viktig at du
          tenker på at alle ikke har de samme skriftene installert. For å helgardere
          deg er det derfor i tillegg til å gi flere mulige preferanser også
          en generell skriftfamilie til sist, denne er enten serif,
          sans-serif, cursive, fantasy
          eller monospace. Hvis et skriftnavn inneholder mellomrom
          bruker du anførselstegn slik som i eksempelet.
        
          font-size bruker vanlige lengdeenheter. Det man dog må
          være oppmerksom på er at for skriftstørrelser referer relative
          størrelser alltid til foreldreelementets skriftstørrelse.
          For skriftstørrelser har man i tillegg
          noen praktiske absolutte størrelser,
          xx-small, x-small, small,
          medium, large, x-large og
          xx-large. Disse kan brukes uavhengig av mediet, og
          den faktiske størrelsen av disse avgjøres av nettleseren.
          Tilsvarende finnes det relative nøkkelord,
          larger og smaller.
        
          Som en hovedregel bør du benytte relative størrelser for
          skriftstørrelser. html-elementet vil ha en standard
          skriftstørrelse fra nettleseren, og hvis du da har
          body { font-size: 110%; } så vil skriftstørrelsen i
          dokumentet bli 110% av normal størrelse gitt av nettleseren/brukeren.
          Husk på at standardstørrelsen kan variere, så å leke med sin egen
          nettleser med font-size: 80% til man har akkurat den
          skriften man vil ha ikke vil være noen god løsning.
        
          Siden størrelsen em ellers alltid referer til
          gjeldende skriftstørrelse i elementet anbefales det å alltid
          benytte % eller larger/smaller
          til relative skriftstørrelser. Typografene rister på hodet over
          angivelser av skriftstørrelser i em.
        
          De to resterende egenskapene er enkle å forklare.
          font-style: italic;
          sier at teksten skal skrives i kursiv, og
          font-weight: bold; angir at det skal brukes
          fet skrifttype. Hvis et element har arvet en slik egenskap
          kan du reversere den ved å gi den egenskapen normal
          istedet for bold eller italic.
        
Ethvert element kan bli gitt egenskaper for marger og rammelinje. Dette er vanligvist brukt på blokkelementer, men virker også på linjeelementer. Du kan få et element til å bli fremstilt som en «boks», med bakgrunnsfarge og ramme, en gitt bredde og høyde. Du kan også spesifisere hvordan den skal plasseres i dokumentet.
          margin angir hvor meget plass man skal sette av
          utenfor elementet. Det er flere måter å spesifisere denne
          egenskapen på, de to vanligste er å enten
          spesifisere marg for alle 4 sider samtidig med margin: 1em;,
          den andre er å spesifisere marg spesifikt for hver enkelt side
          med margin-left: 2em; osv.  Merk deg forskjellen mellom
          å bruke em som størrelsesenhet, som er relativ til
          skriftstørrelsen, og %, som her er relativ til lengden
          og bredden av foreldreelementet. (Forsøk å forandre størrelsen på
          nettleservinduet)
        
Eksempel:
p.midtstiltprosent {
  margin-left: 15%;
  margin-right: 15%;
}
p.midtstiltem {
  margin-left: 4em;
  margin-right: 4em;
}
          
          Et typisk avsnitt med dette stilsettet kan bli fremstilt slik i en visuell nettleser:
Dette er et eksempel på et avsnitt som blir midtstilt. Bare selve avsnittet blir midtstilt, ikke teksten inni. Derfor skriver vi masse tekst her, slik at alle forstår hva jeg mener. Masse tekst. Masse tekst. Bla bla bla bla. Ingen har mer blapper enn jeg! Hah! Blapp meg her, og blapp meg der!
Dette er et eksempel på et avsnitt som blir midtstilt. Bare selve avsnittet blir midtstilt, ikke teksten inni. Derfor skriver vi masse tekst her, slik at alle forstår hva jeg mener. Masse tekst. Masse tekst. Bla bla bla bla. Ingen har mer blapper enn jeg! Hah! Blapp meg her, og blapp meg der!
Elementer kan tenkes på som små bokser, ihvertfall hvis vi tenker på blokkelementene. Vi skal om litt se hvordan vi kan sette bakgrunn for slike bokser, først skal vi sette en ramme rundt.
Eksempel:
div.boks {
    border-width: thin;
    border-color: black;
    border-style: solid;
}
          
          
Dette er et avsnitt innenfor en <div class="boks">. Ble det ikke pen boks, vel?
          Dette er de tre egenskapene man angir til en ramme. Først
          bredden, som kan være thin, medium eller
          thick eller angitt som en standardstørrelse. Deretter
          har vi angitt fargen. Vi skal gå nærmere inn på hvordan man
          spesifiserer farger om litt. border-style kan være blant annet
          none, solid double, dotted.
          Utdypende informasjon står i spesifikasjonen.
        
          Hvis du ønsker å ha forskjellig utseende på noen av rammesidene
          kan du for hvert av disse egenskapene liste opp
          egenskapsverdier fire ganger, som da vil gjelde i rekkefølgen
          topp, høyre, bunn, venstre, eksempelvis border-width: thin thick thin thick;.
        
          margin-egenskapene sa hvordan margene var på utsiden av
          rammen. Hvis man ønsker å beskrive margene på innsiden av
          rammen, kan man bruke padding på akkurat samme måte,
          dvs. si hvor stor avstand det skal være mellom rammen/ytterkanten av
          elementet og innholdet i elementet.
        
Med CSS kan du for alle elementer spesifisere ikke bare farge og bakgrunnsfarge, men også bakgrunnsbilder. Når man benytter seg av farger og bakgrunner er det dog viktig at man sørger for at resultatet blir leselig. Husk også at overdrevent bruk kan være helseskadelig.
Dette er fargenavnene forhåndsgitt CSS:
aqua, black, blue, fuchsia, gray, green, lime, maroon, , olive, purple, red, silver, teal, white, yellow
          Farger kan beskrives på forskjellige måter i CSS. En måte er å
          bruke fulle navn, men siden det bare er 16 (fæle) standardfargene
          som er definert, kommer denne metoden fort til kort. En må istedet
          beskrive en farge ut ifra hvordan den er satt sammen av fargetoner
          i rød, grønn og blå. Hvis man kan regne heksadesimalt (telle til 16
          istedetfor til 10) kan man benytte heksadesimal skriveform
          #ffcc88 eller ganske enkelt #fc8 om man ikke
          vil være så detaljert. Bildebehandlingsprogrammer presenterer ofte
          en slik heksadesimal kode når man velger en farge i paletten.
        
          Om man blir skremt av å telle helt opp til F istedet for til 9,
          bør man kanskje prøve rgb()-metoden istedet.
          I CSS kan du skrive rgb(255,128,191) istedet for
          #ff80bf for å beskrive samme farge. Hvert enkelt tall
          er fortsatt for henholdsvis rød, grønn og blå fargetoner, og styrken
          beskrives med et tall som er i området [0;255]. Det finnes
          enda en mulighet, og det er å angi tallene som prosenter istedet.
          rgb(100%, 50%, 75%) gir samme farge.
        
Eksempel:
body {
    background-color: rgb(99%, 90%, 85%);
    color: rgb(67%, 47%, 33.3%);
}
          
          Et typisk dokument med dette stilsettet kan bli fremstilt slik i en visuell nettleser:
Her er et lite dokument. Lite. Dokument. As if.
Som nevnt tidligere bør man alltid definere bakgrunnsfarge sammen med forgrunnsfarge. I tillegg kan man definere et bakgrunnsbilde hvis det skulle sømme seg:
Eksempel:
body {
    background-color: rgb(99%, 90%, 85%);
    background-image: url(papir.png);
    color: rgb(67%, 47%, 33.3%);
}
          
          Et typisk dokument med dette stilsettet kan bli fremstilt slik i en visuell nettleser:
Her er et lite dokument. Lite. Dokument. As if.
          Legg merke til url()-funksjonen. Denne kan ta både
          relative og absolutte adresser. Vær oppmerksom på at relative
          adresser vil gjelde i forhold til stilsettets adresse, ikke
          dokumentets. Dette får betydning når man skiller ut stilsettet
          i en egen fil som lenkes inn ifra HTML-dokumentet. background
          har også noen gøyale egenskaper, eksempelvis
          background-repeat: no-repeat, background-attachment: fixed
          og background-position: center center; Se spesifikasjonen for
          flere detaljer.
        
          a:link, a:visited: a:active { text-decoration: underline; } 
          gjør at alle lenker i a-elementer blir vist med
          understreking. Vi introduserer her samtidig såkalte psevdoklasser som
          gjelder spesielt for a-elementet. a:link
          gir egenskapene for ubesøkte lenker, a:visited gir
          egenskapene for besøkte lenker og a:active gir
          egenskapene for lenken brukeren er i ferd med å klikke på.
          Vi kan bruke disse psevdoklassene til å forandre hva som er
          fargen på lenker i et dokument. Hvis vi ønsker å foreslå at
          lenkene ser best ut uten understreking kan man bruke
          text-decoration: none;.
        
          p.hoyre { text-align: right; }  gjør at teksten
          i p-elementer som er medlem av hoyre-klassen
          får teksten høyrejustert. Mulige verdier er left,
          right, center og justify.
          Sistnevnte vil si blokkjustering.
        
          body { line-height: 130%; } beskriver linjehøyden, eller
          avstanden mellom baselinjen til to etterfølgende linjer. Lengden
          er relativ til skrifttypens høyde. En har også
          body { letter-spacing: 1em; } som angir hvor stort
          mellomrom det skal være mellom to bokstaver i tillegg til det vanlige
          mellomrommet. Tilsvarende har en word-spacing for tillegg
          i avstanden mellom ord. Begge disse to siste egenskapene kan være
          både positive og negative, slik at en kan få bokstavene til å stå
          tettere eller mer spredt.
        
CSS lar deg selvsagt også spesifisere hvordan en listestruktur skal se ut.
Eksempel:
ul {
    list-style-type: disc;
    list-style-image: url(hake.png);
}
          
          Et typisk uordnet liste med dette stilsettet kan bli fremstilt slik i en visuell nettleser:
Vi vil her komme med forslag til teknikker for å skrive HTML på en måte som gjør det enklere å ha oversikt over koden og dermed unngå feil, eller i det minste lettere fikse feil.
Alt i HTML er elementer. Elementene i et dokument kan fremstilles i en trestruktur, hvor hvert element er underordnet et annet. Under følger en sterkt forenklet versjon av hvordan elementene i dette dokumentet hører sammen.
html
|-- head
|   |-- title
|   |   `-- HTML på en ryddig måte
|   `-- style
|       `-- ...
`-- body
    |-- h1
    |-- `-- HTML på en ryddig måte
    |-- p
    |   |-- bla bla...
    |   `-- em
    |       `-- HTML
    |-- h2
    |   `-- Syntaks
    |-- dl
    |   |-- dt
    |   |   `-- syntaks
    |   `-- dd
    |       |-- p
    |       |   |-- m1 (fra gr,
    |       |   |-- em
    |       |   |   `-- -taks
    |       |   `-- ...
    |       `-- ol
    |           |-- li
    |           |   `-- (beskrivelse av) ..
    |           `-- li
    |               `-- i edb: forhold ..
    `-- address
        `-- a
            `-- stain@nvg.org
        
        
          Pass på at det ikke forekommer blokkelementer
          inni typiske linjeelementer,
          slik som i <em> Flapp og hei ..
          <p> blapper uten grenser</p> flapper <em>.
        
          Gjør det til en hovedregel at med en gang du har skrevet en
          starttag skriver du sluttagen samtidig. Deretter fyller du
          inn elementets innhold mellom disse. På denne måten skal det
          litt til å glemme å avslutte et element, siden du alltid vil ha
          sluttagen liggende. Ikke fall for fristelsen å åpne et avsnittselement
          med <p> uten å ta med </p>. Det er lovlig etter
          spesifikasjonene, men det ødelegger tankegangen for deg selv om at du
          arbeider med elementer som inneholder hverandre.
          Vær konsekvent, husk å avslutte elementer som ikke har noen sluttag.
        
Ved å HTML-spesifikasjonen sørger du for at dokumentene dine ikke bare virker i dagens nettlesere, men også i morgendagens nettlesere. Ved oppdatering minskes faren for at nettlesere plutselig skal oppføre seg merkelig, fordi du har oversikt over dokumentstrukturen og
Ved å benytte seg av innrykk får du lett oversikt over hvilke elementer som er inneholdt hvor. Det gjør det enklere å finne feil, og også enklere å flytte på deler av dokumentet. Du bør selv finne ut hvilken innrykkingsstil som passer deg best. Her kommer noen varianter:
Eksempel:
  <body>
      <h1>
          Overskrift
      </h1>
      <ul>
          <li>
              <div class="egg">
                  <p>
                      Kort avsnitt.
                  </p>
              </div>
          </li>
      </ul>
  <body>
            
          Legg merke til hvordan du veldig enkelt kan sjekke at alle elementer er avsluttet, og at det er ingen tvil om at det korte avsnittet er en del av punktlisten. Samtidig ser vi at dette blir fort veldig stort.
Eksempel:
  <body>
      <h1>Overskrift</h1>
      <ul><li>
          <div class="egg">
              <p>Kort avsnitt.</p>
          </div>
      </li></ul>
  <body>
            
          
            Her har vi forkortet litt der vi mener det ikke er nødvendig med
            innrykk, for eksempel i det kortet avsnittet, som man lett
            identifiserer som et enkelt avsnitt. Siden det bare er et
            punkt i punktlisten har vi også slått sammen ul og
            li på samme linje. Fordelen med denne metoden er at
            koden ikke ser ut som et stort trekkspill. Ulempene er at
            man ikke like lett klarer å identifisere de enkelte elementene,
            for eksempel om <li> er riktig avsluttet. Hvis koden forandres
            må det merarbeid til, for eksempel hvis vi skal legge til et til
            punkt på punktlisten kan vi lett risikere å miste den ene </li>en,
            og om avsnittet blir lengre kan </p> bli vanskeligere å få øye på.
          
Eksempel:
  <body>
  <h1>Overskrift</h1>
  <ul>
  <li>
  <div class="egg">
      <p>Kort avsnitt.</p>
  </div>
   </li>
   </ul>
  <body>
            
          Denne metoden går ut på at man bruker linjeskift rikelig slik at man kan se hvilke deler av koden som logisk henger sammen. Metoden er grei for små dokumenter, men det blir fort vanskelig å kontrollere sin egen kode for feil. Det blir også lettere å sette inn nye elementer på feil sted i en slik modell. Metoden kan brukes om man bare har tilgang til en veldig enkel editor hvor det å bruke innrykk fører til så mye merarbeid at det ikke lønner seg.
Eksempel:
<body>
    <h1>Overskriften</h1>
        <p>Dette er et avsnitt først</p>
        <h2>Deloverskrift</h2>
            <p>Dette er et avsnitt som en del av første seksjon.</p>
            <p>Dette er et annet avsnitt. Dette er også med.</p>
        <h2>Andre deloverskrift</h2>
            <p>Dette er et avsnitt som en del av andre seksjon.</p>
            <p>Dette er et annet avsnitt. Dette er også med.</p>
</body>
            
          Denne innrykksmetoden tar hensyn til hvilke logiske deler som hører sammen. Avsnittene hører til under hver sine deloverskrifter, selv om de ikke er inneholdt i elementene til deloverskriftene. Å bruke innrykk slik gjør det veldig enkelt å finne frem til rette sted i dokumentkoden siden du enkelt kjenner igjen de ulike delene av teksten. Den viser på den andre siden ikke så godt hvilke elementer som er inneholdt i hvem.
Det beste er kanskje å prøve kombinasjoner av disse metodene til du føler at du har funnet den beste måten å arbeide på. Mennesker er forskjellige. Hvis flere skal arbeide på de samme dokumentene, noe som ofte er tilfelle, snakk med de andre om hvilke metoder de foretrekker, og forsøk å finn en gylden middelvei. Det er viktig at en er konsekvent i metodevalget, hvis ikke kan det lett bli rotete.
Eksempel:
<body>
    <h1>Overskriften</h1>
        <p>Dette er et avsnitt først</p>
    <h2>Deloverskrift</h2>
        <p>
            Dette er et avsnitt som en del av første seksjon.
        </p>
        <p>
            Dette er et annet avsnitt. Dette er også med.
        </p>
    <h2>Andre deloverskrift</h2>
        <p>
            Dette er et avsnitt som en del av andre seksjon.
        </p>
        <p>
            Dette er et annet avsnitt. Dette er også med.
        </p>
</body>
            
          <font> og width="100".div- og
              span-elementene til å angi generelle strukturer som
              ikke er støttet av HTML.http://validator.w3.org/ sjekker dokumentet ditt opp mot spesifikasjonen du har valgt å bruke og forteller deg om eventuelle feil.