# Terrarium-prosjekt Del 1: Introduksjon til HTML

> Sketchnote av [Tomomi Imura](https://twitter.com/girlie_mac)
## Quiz før forelesning
[Quiz før forelesning](https://ff-quizzes.netlify.app/web/quiz/15)
> Se video
>
> [](https://www.youtube.com/watch?v=1TvxJKBzhyQ)
### Introduksjon
HTML, eller HyperText Markup Language, er 'skjelettet' til nettet. Hvis CSS 'kler opp' HTML-en din og JavaScript gir den liv, er HTML kroppen til din webapplikasjon. HTMLs syntaks reflekterer til og med denne ideen, da den inkluderer "head", "body" og "footer"-tagger.
I denne leksjonen skal vi bruke HTML til å lage 'skjelettet' til grensesnittet for vårt virtuelle terrarium. Det vil ha en tittel og tre kolonner: en høyre og en venstre kolonne hvor de flyttbare plantene befinner seg, og et midtområde som vil være det faktiske glassaktige terrariet. Ved slutten av denne leksjonen vil du kunne se plantene i kolonnene, men grensesnittet vil se litt rart ut; ikke bekymre deg, i neste seksjon vil du legge til CSS-stiler for å gjøre grensesnittet penere.
### Oppgave
På datamaskinen din, opprett en mappe kalt 'terrarium' og inni den en fil kalt 'index.html'. Du kan gjøre dette i Visual Studio Code etter at du har opprettet terrarium-mappen ved å åpne et nytt VS Code-vindu, klikke på 'open folder', og navigere til den nye mappen din. Klikk på den lille 'file'-knappen i Explorer-panelet og opprett den nye filen:

Eller
Bruk disse kommandoene i git bash:
* `mkdir terrarium`
* `cd terrarium`
* `touch index.html`
* `code index.html` eller `nano index.html`
> index.html-filer indikerer for en nettleser at det er standardfilen i en mappe; URL-er som `https://anysite.com/test` kan være bygget ved hjelp av en mappestruktur som inkluderer en mappe kalt `test` med `index.html` inni; `index.html` trenger ikke å vises i en URL.
---
## DocType og html-tagger
Den første linjen i en HTML-fil er dens doctype. Det er litt overraskende at du må ha denne linjen helt øverst i filen, men den forteller eldre nettlesere at siden skal gjengis i standardmodus, i henhold til gjeldende HTML-spesifikasjon.
> Tips: I VS Code kan du holde musepekeren over en tagg og få informasjon om bruken fra MDN Reference-guidene.
Den andre linjen bør være åpningstagen ``, etterfulgt av dens lukketagg ``. Disse taggene er rootelementene i grensesnittet ditt.
### Oppgave
Legg til disse linjene øverst i `index.html`-filen din:
```HTML
```
✅ Det finnes noen forskjellige moduser som kan bestemmes ved å sette DocType med en spørringsstreng: [Quirks Mode og Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Disse modusene ble brukt for å støtte veldig gamle nettlesere som ikke er i vanlig bruk i dag (Netscape Navigator 4 og Internet Explorer 5). Du kan holde deg til standard doctype-erklæringen.
---
## Dokumentets 'head'
'Head'-området i HTML-dokumentet inkluderer viktig informasjon om nettsiden din, også kjent som [metadata](https://developer.mozilla.org/docs/Web/HTML/Element/meta). I vårt tilfelle forteller vi webserveren som denne siden skal sendes til for å bli gjengitt, disse fire tingene:
- sidens tittel
- metadata om siden, inkludert:
- 'character set', som forteller hvilken tegnkoding som brukes på siden
- nettleserinformasjon, inkludert `x-ua-compatible` som indikerer at IE=edge-nettleseren støttes
- informasjon om hvordan visningsområdet skal oppføre seg når det lastes. Å sette visningsområdet til å ha en initial skala på 1 kontrollerer zoomnivået når siden først lastes.
### Oppgave
Legg til en 'head'-blokk i dokumentet ditt mellom åpning og lukking av ``-taggene.
```html
Welcome to my Virtual Terrarium
```
✅ Hva ville skjedd hvis du satte en visningsområde-meta-tagg som dette: ``? Les mer om [viewport](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag).
---
## Dokumentets `body`
### HTML-tagger
I HTML legger du til tagger i .html-filen din for å lage elementer på en nettside. Hver tagg har vanligvis en åpning og lukking, som dette: `
hei
` for å indikere et avsnitt. Lag grensesnittets body ved å legge til et sett med ``-tagger inne i ``-taggene; markeringen din ser nå slik ut:
### Oppgave
```html
Welcome to my Virtual Terrarium
```
Nå kan du begynne å bygge ut siden din. Vanligvis bruker du `
`-tagger for å lage de separate elementene på en side. Vi skal lage en serie med `
`-elementer som vil inneholde bilder.
### Bilder
En HTML-tagg som ikke trenger en lukketagg er ``-taggen, fordi den har et `src`-element som inneholder all informasjonen siden trenger for å gjengi elementet.
Opprett en mappe i appen din kalt `images` og legg til alle bildene i [kildekode-mappen](../../../../3-terrarium/solution/images); (det er 14 bilder av planter).
### Oppgave
Legg til disse plantebildene i to kolonner mellom ``-taggene:
```html
```
> Merk: Spans vs. Divs. Divs regnes som 'block'-elementer, og Spans er 'inline'. Hva ville skjedd hvis du endret disse divene til spans?
Med denne markeringen vises plantene nå på skjermen. Det ser ganske dårlig ut, fordi de ennå ikke er stylet med CSS, og vi skal gjøre det i neste leksjon.
Hvert bilde har alternativ tekst som vil vises selv om du ikke kan se eller gjengi et bilde. Dette er en viktig attributt å inkludere for tilgjengelighet. Lær mer om tilgjengelighet i fremtidige leksjoner; for nå, husk at alt-attributtet gir alternativ informasjon for et bilde hvis en bruker av en eller annen grunn ikke kan se det (på grunn av treg tilkobling, en feil i src-attributtet, eller hvis brukeren bruker en skjermleser).
✅ La du merke til at hvert bilde har samme alt-tekst? Er dette god praksis? Hvorfor eller hvorfor ikke? Kan du forbedre denne koden?
---
## Semantisk markering
Generelt er det å foretrekke å bruke meningsfull 'semantikk' når du skriver HTML. Hva betyr det? Det betyr at du bruker HTML-tagger for å representere typen data eller interaksjon de er designet for. For eksempel bør hovedtittelen på en side bruke en `
`-tagg.
Legg til følgende linje rett under åpningstagen ``:
```html
My Terrarium
```
Å bruke semantisk markering, som å ha overskrifter som `
` og uordnede lister som `
`, hjelper skjermlesere med å navigere gjennom en side. Generelt bør knapper skrives som `
`-taggen:
```html
```
✅ Selv om du la til denne markeringen på skjermen, ser du absolutt ingenting bli gjengitt. Hvorfor?
---
## 🚀Utfordring
Det finnes noen morsomme 'eldre' tagger i HTML som fortsatt er morsomme å leke med, selv om du ikke bør bruke utdaterte tagger som [disse taggene](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) i markeringen din. Likevel, kan du bruke den gamle `