Tagg-grunder

Från Webbling
Version från den 23 augusti 2014 kl. 17.12 av PGJ (diskussion | bidrag) (Skapade sidan med 'Som vi konstaterade tidigare bygger HTML på taggar och element. För att kunna förstå HTML, måste vi förstå hur dess taggar och element är uppbyggda. I de allra flesta ...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök

Som vi konstaterade tidigare bygger HTML på taggar och element. För att kunna förstå HTML, måste vi förstå hur dess taggar och element är uppbyggda. I de allra flesta fall består HTML-taggarna av ett taggpar. Vi har alltid en starttagg och oftast en sluttagg. Innehållet som finns mellan taggarna är alltså det som vi vill märka upp på något vis. När webbläsaren sedan tolkar dokumentet kommer den med hjälp av taggarna att kunna behandla dokumentet på ett korrekt vis och skapa HTML-element utifrån taggarna och deras innehåll.

Alla taggar, såväl start som slut, ligger inom tecknen ”<” och ”>”. Så en tagg kan se ut så här ”<h1>”. Detta är h1-taggen, vilken används för att markera att något är en huvudrubrik. När webbläsaren tolkar ett dokument och träffar på ett ”>”-tecken kommer den att börja tolka allt från och med den punkten som en tagg, ända tills den hittar ett motsvarande ”>”-tecken. Detta gör att man inte kan skriva ”<”-tecken hur som helst i sina dokument. Om man vill ha ett ”mindre än”-tecken i sitt dokument, måste man skriva det med hjälp av en speciell kod – i detta fall är koden ”&lt;”. Då kommer webbläsaren att förstå att man vill visa det specifika tecknet och att det inte är en starttagg. Det finns många dylika teckenkoder, men vi återkommer till dem senare.

Man kan inte hitta på sina taggar hur som helst, utan det finns en förutbestämd uppsättning av taggar som definierats i HTML5-standarden och det är enbart dessa som webbläsare fattar. Det finns en uppsjö av olika taggar. Dock är det inte helt nödvändigt att kunna dem alla utantill. Det är bra att komma ihåg vilka olika typer av taggar som finns, men de mer obskyra taggarna kan man alltid slå upp när man väl behöver dem. I de flesta fall finns det en tagg som passar det syfte man är ute efter, men för de tillfällen då man inte hittar exakt vad man behöver så finns det några generella taggar som kan användas för att märka upp information som inte har någon speciell semantisk betydelse. Oftast vill man göra det senare för att informationen ska ges ett speciellt utseende, med hjälp av CSS, eller för att informationen ska behandlas av ett JavaScript-program.

För så gott som alla taggar används även en sluttagg. Denna indikerar var taggen upphör att gälla. Allt som ligger inom start- och sluttaggarna kallas sammantaget för ett HTML-element. Sluttaggar ser ut som och heter samma som starttaggarna, med den skillnaden att man lägger till ett ”/”-tecken före taggnamnet. Så den tagg som vi hade som exempel tidigare; ”<h1>”, har alltså en motsvarande sluttagg som ser ut så här; ”</h1>”.

I vissa fall kan man utelämna sluttaggen, men det är oftast en bra vana att lägga dit den även om den inte behövs. Det gör det lättare att se var ett HTML-element börjar och var det slutar, samt att vissa utvecklingsverktyg fungerar bättre om båda taggarna är med. I de fall då sluttaggen måste anges, kan det bli rejäla fel när webbläsaren försöker tolka ditt dokument och slutresultatet kanske inte alls blir vad du tänkt dig. Hellre än att försöka hålla reda på de specialfall där sluttaggarna inte behövs, är det oftast bättre att alltid ange dem. Det blir en god vana som leder till färre fel. Dock finns det ett fåtal taggar till vilka man aldrig använder en sluttagg. Vi återkommer till dessa senare.

Ett taggpar plus dess innehåll skapar tillsammans vad vi kallar för ett HTML-element. Ett exempel på ett komplett HTML-element kan vara:

<h1>Detta är en huvudrubrik</h1>

Detta är ett h1-element vars innehåll är texten ”Detta är en huvudrubrik”. På detta vis talar vi om för webbläsaren att texten har ett speciellt syfte, i det här fallet att det är denna sektions huvudrubrik. Vi talar dock inte om hur texten ska visas, utan enbart dess syfte. Alla webbläsare har ett grundutseende för hur olika HTML-element ska se ut. I vårt fall kommer antagligen innehållet att visas med lite större och fetare text, men så länge vi jobbar med HTML, arbetar vi inte med utseende. Det exakta utseendet som taggarna ger upphov till skiljer sig ifrån webbläsare till webbläsare. Det kan till och med vara som så att slutanvändaren som använder vår webbsida är blind (eller har något annat handikapp) och därför får sidan uppläst för sig. När vi jobbar med ren HTML, kan vi aldrig vara säkra på hur slutresultatet kommer att återges. Med hjälp av CSS får vi mer kontroll över hur sidan återges, men inte ens då kan vi inte vara 100 % säkra på att slutanvändaren kommer att uppleva sidan exakt så som vi tänkt oss. Vi återkommer dock till utseendet i en senare aktivitet.

HTML-element kan i sin tur innehålla andra HTML-element. Ett exempel på det skulle kunna vara:

<code><h1>Detta är en <em>huvudrubrik</em></h1></code>

Här har vi alltså ett em-element är nästlat inuti ett h1-element. Det gör att em-elementet är en del av h1-elementet, men det är även ett eget element i sig. Em-taggen används för att markera att något har mer emfas än omkringliggande material – det vill säga att det ska betonas på något vis. I de flesta fall kommer webbläsaren att visa sådan text med fet stil.

Ett mer avancerat nästlingsexempel skulle kunna vara följande:

<div>
   <h1>Detta är en huvudrubrik</h1>
   <div>
      <h2>En underrubrik</h2>
  </div>
</div>

Det mest intressanta med ovanstående exempel är att vi har ett div-element inuti i ett annat div-element. När webbläsaren ska tolka ovanstående, så kommer den att fatta att den första ”</div>”-taggen är sluttaggen till den andra ”<div>”-taggen och att den sista sluttaggen hör samman med den första starttaggen. Webbläsaren är alltså rätt så ”smart” när den ska tolka hur taggar och sluttaggar hör samman, dock gäller det att se till så att man får dit sluttaggarna i rätt ordning. Moderna webbutvecklingsverktyg har bra stöd som hjälper dig med att få dit sluttaggarna i rätt ordning. De flesta verktyg fyller i möjliga sluttaggsnamn, direkt du skriver ”&lt/”. Men man kan inte helt förlita sig på att verktygen gör allting rätt...

När man skriver mycket stor och komplex kod, så kan lätt bli en enda stor soppa av allting. Med lite tur är det en soppa som webbläsaren kanske klarar av att tolka, medan du som skrivit koden kanske tappar bort dig helt. I värsta fall är det en soppa som vare sig du eller webbläsaren klarar av att tolka. Så det gäller att strukturera sin kod på ett vettigt vis. Det finns en del tricks, eller goda vanor, som gör att det blir enklare att hålla ordning på sin kod. I exemplet ovan har vi använt oss av så kallad indentering, det vill säga vi har skjutit in texten med några extra mellanslag (tabbar går också bra) på vänster sida. Det gör att vi kan se strukturen i koden och lätt se vilka start- och sluttaggar som hör samman. Vi återkommer till goda kodvanor i en senare aktivitet.

När vi skapar nästlade HTML-element gäller det att hålla tungan rätt i munnen och se till att taggarna hamnar i rätt ordning. Det här skulle till exempel bli rejält fel:

<h1>Detta är en <i>huvudrubrik</h1></i>

Här har vi satt sluttaggarna i fel ordning, vilket kommer att ge webbläsaren en hel del huvudbry. De flesta webbläsare är godvilliga och sväljer flertalet fel utan några direkta klagomål. I vissa fall kommer slutresultatet att bli felaktigt, men förvånansvärt ofta lyckas webbläsaren få till en korrekt tolkning av dokumentet, trots att man gjort fel. Dock kan det vara som så att det fel som en typ av webbläsare klarar av, kanske en annan webbläsare inte alls klarar. Det är därför viktigt att använda sig av testverktyg som kollar igenom ens HTML-kod och påpekar fel och brister. Dessa testverktyg sväljer inte vad som helst, utan är riktigt, riktigt petiga och ska ha allt absolut rätt innan de godkänner koden. Användningen av dylika testverktyg ger mer robust kod, som är lättare att felsöka och underhålla. Så gör det till en god vana att testa din kod ofta – det vinner du på i längden. Vi kommer att titta mer på verktyg i en senare aktivitet.