title |
---|
Fyrirlestur 2.1 — HTML 3 |
Ólafur Sverrir Kjartansson, osk@hi.is
- Extensible HyperText Markup Language
- Tilraun til að láta HTML vera betur skilgreint og þá sem framlenging af XML en ekki SGML
- Vel formað XML svo hægt að þátta (parse) með XML þátturum
- Gekk ekki vel
- Vel formað
<p>Halló <strong>heimur</strong></p>
- ekki
<p>Halló <strong>heimur</p></strong>
- Tög og attribute í lágstöfum
<p class="a">Hæ</p>
- ekki
<P CLASS="a">Hæ</P>
- Endum alltaf og lokum alltaf
<p class="a">Hæ</p><br/>
- ekki
<p class="a">Hæ<br>
- Attribute á elementum alltaf innan gæsalappa og ekki stök
<p class="a" foo="foo">Hæ</p>
- ekki
<p class=a foo>Hæ
- Þessar kröfur eru ekki til staðar í HTML5
- Þar sem XHTML á að vera vel formað XML er auðvelt að gera mistök sem valda því að síða birtist ekki, t.d. að loka ekki elementi
- Villur í vöfrum stoppuðu notkun
- Flest XHTML var sent frá vefþjóni merkt sem HTML (Content type sett sem
text/html
) og því túlkað sem slíkt
Be conservative in what you do, be liberal in what you accept from others
- Robustness principle / Postel's law: RFC761: TCP
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Í lagi?</title>
</head>
<body>
<p>Halló?</p>
</body>
</html>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Í lagi?</title>
</head>
<body>
<p>Halló?
</body>
</html>
- Skrifum snyrtilegt HTML
- Fylgjum (yfirleitt) þeim kröfum sem XHTML setur á málfræði
- Pössum upp á inndráttinn
- Whitespace er ekki mikilvægt í HTML, þ.a. mörg bil og mörgum línum er breytt í eitt bil
Kóði lýsir innri manneskju
- Óli
<!doctype html>
<html lang="is">
<head>
<meta charset="utf-8">
<title>Halló heimur</title>
</head>
<body>
<p>Hæ!</p>
</body>
</html>
<!doctype html><HTML lang=is>
<head><meta charset="utf-8">
<title>Halló heimur!</TITLE>
<BODY><p>Hæ!
Túlkað nákvæmlega eins og fyrri kóði, en mikill munur á lesanleika.
- Sum element „gleypa“ allt sem er innan þeirra þar til þeim er lokað
- t.d.
<title>
og<textarea>
- t.d.
- Ef við lokum elementi of snemma getur það leitt til villa (séstaklega þegar unnið er með CSS) sem getur verið erfitt að leita upp
<div class="foo">
<div class="bar">
<div class="baz">
</div></div>
</div>
</div>
- Almennt köllum við það linting að lesa yfir kóða og benda á möguleg vandamál
- Til fyrir langflest forritunarmál
- Oftast tvenns konar villur
- Mögulegar villur við keyrslu
- Brot á kóðastíl
- Hvernig við meðhöndlum inndrátt, notkun á tabs eða spaces
- Hámarkslengd lína, ef línur verða mikið lengri en 100 stafir geta komið upp vandamál (t.d. að bera saman kóðabreytingar, lesa kóða á minni skjám/minni gluggum)
- Í hvaða röð CSS eigindi eru
- o.s.fr.
- Til validation þjónustur sem túlka HTML og láta vita af villum sem eru til
- W3C rekur þá mest notuðu á https://validator.w3.org/
- Líka hægt að setja upp í flestum ritlum
- Getum sett athugasemd inn í HTML:
<!-- no comment -->
- Í XML og HTML eru sérstakir stafir, character entity skilgreindir með
&X;
þar sem X er:- Heiti tákns, t.d.
<
fyrir minna-enn (<
) - Code point, í dec eða hex með # fyrir framan, t.d.
Þ
fyrir Þ
- Heiti tákns, t.d.
- Þegar við erum að velja element viljum við velja element sem á sem mest við
- Lesum í merkingarfræði elements
- Getum flett upp
- Skilgreiningar W3C
- HTML5 Element Index hjá HTML5 Doctor
- MDN: HTML element reference
- W3C: The Elements of HTML
- Það er sterklega mælst til þess að markup í HTML skjali sé aðeins notað til að tjá merkingu en ekki framsetningu
- Framsetning á gögnum er stýrt með CSS og fáum við því hreina skiptingu á milli efnis og útlits
- Mörg element til sem skilgreina merkingu en annars er hægt að nota attributes
<b>Fyrirsögn</b>
<br>Halló heimur
Fyrirsögn
Halló heimur
Halló heimur
<h2>Fyrirsögn</h2>
<p>Halló heimur</p>
- Aðskilnaður á milli merkingar og útlits gerir manni auðveldara að breyta öðru án þess að hafa áhrif á hitt
- Einfaldar viðhald, breytingar eru dýrar
- Góð merkingarfræði getur aukið aðgengi að vef
- Vélar sem skoða vef með merkingarfræðilega réttu HTML geta dregið ályktanir um efnið sem getur gagnast þér og öðrum
- T.d. Googlebot, Pocket, Instapaper
- Vafrar geta birt efni á nytsamlegan hátt sem höfundur hafði ekki dottið í hug
- Það er snyrtilegra og faglegra
- Merkingu og framsetningu var blandað óhikað saman
- Töflur ásamt ósýnilegum myndum (spacer gif) notaðar til að stýra útliti
<FONT>
notað til að stýra stærð og lit á letri<FONT size="12" color="red" face="Comic Sans MS">Halló heimur!</FONT>
- Hjálpsemi og samhæfni nútíma vafra gera okkur þó kleyft að birta fjörgamalt HTML sem engin ætti að nota
Halló heimur!
hæææææææææææææææææææææ
- Búið að fjarlægja element sem notuð voru aðeins til birtingar, t.d.
<center>
og<font>
- Einnig búið að fjarlægja attribute af sama meiði, t.d.
align
,background
,bgcolor
ogborder
- Skrifum HTML þannig að beri merkingu
- Stýrum framsetningu með CSS
- Fáum hreina skiptingu milli efnis og útlits
- Ómerkingarbær element en notuð þegar ekkert annað á við
<div>
– division, skiptir síðu, block level, fyllir út í lárétt pláss foreldris<span>
– merkir texta. Inline, fellur inn í nærliggjandi texta
- Verður allt að vera 100% merkingarfræðilegt og má aldrei nota
<div>
eða<span>
? - Höfum merkingarfræði í huga og gerum okkar besta
- Einbeitum okkur að því að að skrifa snyrtilegt og gott HTML!
- Eyðum ekki of löngum tíma í að finna hið eina rétta element, notum
<div>
eða<span>
ef svo ber við