HTML & CSS for nybegynnere

HTML & CSS for nybegynnere (Del 21): Semantikk for nettet (4)

Alle videoer i opplæringen HTML & CSS for nybegynnere

Også her vil det igjen påpekes i begynnelsen av opplæringen at du ikke bør forvente mirakler fra de presenterte elementene. Visuelt sett gjør de faktisk ikke så mye. De er imidlertid interessante med tanke på at du kan strukturere dokumentene logisk og semantisk med dem.


Navigasjonsområder

Via nav-elementet kan du semantisk merke navigasjonsfelt eller andre områder for tilleggsinnholdselementer. Dette elementet er hovedsakelig ment for å markere hyperkoblinger til andre sider eller til supplerende informasjon.

Et eksempel:

<nav>
   <a href="index.html">Startside</a>
   <a href="html5.html">Lære HTML5</a>
   <a href="css.html">CSS</a>
   <a href="cms.html">Joomla!</a>
   <a href="wordpress.html">Wordpress</a>
</nav>



Innenfor nav-elementet kan du bruke hvilke som helst elementer. Du kan fortsatt definere navigasjonen ved hjelp av lister. Andre elementer kan imidlertid også lett brukes innenfor nav. nav kan også forekomme flere ganger i et dokument.

Angi detaljer

Et annet interessant element er details. Gjennom dette kan du – som navnet på elementet allerede antyder – angi ytterligere informasjon om en innholdsenhet. Vær oppmerksom på at details-elementet først blir virkelig interessant i kombinasjon med summary-elementet. Mer om dette elementet følger etterpå.

Først et eksempel på bruk av details:

<article>
  <details>
    <summary>Henvisninger til artikkelen...</summary>
    <ul>
      <li><a href="henvisning1.html">Lenke 1</a></li>
      <li><a href="henvisning2.html">Lenke 2</a></li>
      <li><a href="henvisning3.html">Lenke 3</a></li>
    </ul>
  </details>
  <details>
    <summary>Kilder til artikkelen ...</summary>
    <ul>
      <li><a href="kilde1.html">Lenke 4</a></li>
      <li><a href="kilde2.html">Lenke 5</a></li>
      <li><a href="kilde3.html"">Lenke 6</a></li>
    </ul>
  </details>
</article>



Innholdet i details-elementet blir holdt skjult for besøkende før de klikker på summary-elementet inne i details.

HTML & CSS for nybegynnere (Del 21): Semantikk for nettet (4)

Dette kan for eksempel være interessant i forbindelse med en videospiller. Her er et eksempel:

<video id="film" width="320" height="180" autoplay>
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
  <source src="video.ogv" type="video/ogg">
</video>
<details open>
  <summary>Skjul/vis videospillerkontroll</summary>
  <p>
    <button id="start" onClick="start()">Start/Pause</button>
    <button id="stumm" onClick="stumm()">Dempe</button>
    <button id="lauter" onClick="lauter()">Høyere</button>
    <button id="leiser" onClick="leiser()">Lavere</button>
  </p>
</details>



Når siden lastes, vil bare spillervinduet være synlig i utgangspunktet.

HTML og CSS for nybegynnere (Del 21): Semantikk for nettet (4)

Hvis en besøkende klikker på linken for å skjule eller vise, vil innholdet definert innenfor summary-elementet vises.

HTML & CSS for nybegynnere (Del 21): Semantikk for nettet (4)

Ifølge spesifikasjonen skal nettleserne vise standardinnhold hvis det ikke finnes et summary-element.

Også interessant er attributtet open for details.

<details open>
…
</details>



Hvis dette attributtet er satt, vil innholdet i summary-elementet være synlig når siden lastes.

Oppsummeringer

Nå tar vi en litt grundigere titt på summary-elementet.

<article>
  <details>
    <summary>Henvisninger til artikkelen...</summary>
    <ul>
      <li><a href="henvisning1.html">Lenke 1</a></li>
      <li><a href="henvisning2.html">Lenke 2</a></li>
      <li><a href="henvisning3.html">Lenke 3</a></li>
    </ul>
  </details>
  <details>
    <summary>Kilder til artikkelen ...</summary>
    <ul>
      <li><a href="kilde1.html">Lenke 4</a></li>
      <li><a href="kilde2.html">Lenke 5</a></li>
      <li><a href="kilde3.html"">Lenke 6</a></li>
    </ul>
  </details>
</article>



Innenfor summary blir altså innholdet som ikke er åpnet ennå definert i forbindelse med details. Takk til summary kan ekstra informasjon integreres som bare blir vist ved behov.

Man kunne selvfølgelig også realisere åpne og lukkingbare områder enkelt med JavaScript. Men hvis JavaScript er deaktivert i nettleseren, vil ikke applikasjonen fungere. Derfor er det ønskelig med en bred støtte for details og summary så snart som mulig.

Sidebarer og marginalia

Ekstra informasjon, marginalia, kryssreferanser osv. kan markeres med aside-elementet i HTML5. Innholdet som er markert på denne måten befinner seg i sammenheng med det totale dokumentet, men er ikke direkte tilknyttet det.

Vær oppmerksom på at HTML5-spesifikasjonen ikke bestemmer hvilken dimensjon en seksjon markert med aside skal ha. Det betyr at innholdet i aside for eksempel kan vises som en marginalia eller som en sidebar.

Følgende eksempel viser definisjonen av en aside-seksjon.

<body>
  <header>
   <h1>PSD-Tutorials.de</h1>
  </header>
 <article>
  <h2>Lage web-apper (Del 10): jQuery mobile (2)</h2>
    <p>I denne opplæringen blir den første ordentlige jQM-siden opprettet. Forutsetningen for dette er html-skjelettet som du allerede har lært.</p>
    <aside>
     <h3>Mer informasjon</h3>
      <ul>
       <li><a href="#/fn1">Det finnes mer informasjon...</a></li>
      </ul>
     </aside>
    </article>
    <aside>
     <nav>
      <h2>Navigasjon</h2>
      <ul>
       <li><a href="#">Hjemmeside</a></li>
       <li><a href="# ">Kontakt</a></li>
     </ul>
     </nav>
   </aside>
  </body>

Legge til tidspunkter

Tidspunkter kan spesifikt markeres med det nye time-elementet. Særpreget med dette elementet er at tidspunktene er leselige for både mennesker og maskiner.

Tidspunktene skrives inn i time-elementet for mennesker. For å gi nettleserne muligheten til å lese tidinformasjonene, brukes attributtet datetimetime-elementet.

<p>Vi sees den 
<time datetime="2014-04-15 19:00">15. april kl. 19.00</time>.
</p>



På dette tidspunktet er det verdt å merke seg at dette ikke har noen synlige effekter i moderne nettlesere, men er kun ment for å gjøre tidspunkter leselige for maskiner.

HTML & CSS for nybegynnere (Del 21): Semantikk for weben (4)

Fremheve tekster

Med mark-elementet er det mulig å visuelt fremheve ord eller hele tekstpassasjer. Det presiseres i HTML5-spesifikasjonen at dette elementet kun skal brukes i sammenheng med tekstinnhold. I tillegg må det ha en bestemt tilknytning til konteksten.

Et eksempel:

<p>I denne opplæringen blir den første ordentlige jQM-siden opprettet. Forutsetningen for dette er <mark>html-skjelettet</mark> som du allerede har lært.</p>



Hvordan nettlesere legger til fremhevingen er ikke bestemt.

HTML & CSS for nybegynnere (Del 21): Semantikk for nettet (4)



Både Google Chrome og Firefox bruker imidlertid en gul bakgrunn.

Marker samtaler

Også utmerkelsen av dialoger ble tenkt på i HTML5. For dette formålet finnes dialog-elementet. For øyeblikket støttes imidlertid dialog-elementet utelukkende av Safari og Google Canary, altså utviklerversjonen av nettleseren.

HTML & CSS for nybegynnere (Del 21): Semantikk for nettet (4)

Her er et annet eksempel:

<dialog id="dialog" style="width:50%;background-color:#F4FFEF;border:1px dotted black;">
<p>Dette er innholdet i boksen.</p>
<button id="hide">Lukk</button>
</dialog>
<button id="show">Vis innholdet</button>
</div>
<script type="text/JavaScript">
(function() {  
    var dialog = document.getElementById('dialog');  
    document.getElementById('show').onclick = function() {  
        dialog.show();  
    };  
    document.getElementById('hide').onclick = function() {  
        dialog.close();  
    };  
})(); 
</script>



Så snart knappen trykkes, vises dialogboksen. For at dette skal fungere, er det brukt en kombinasjon av HTML5, CSS og JavaScript i det tidligere eksemplet.

HTML & CSS for nybegynnere (Del 21): Semantikk for nettet (4)