2 HTML ja rakenteinen merkkaus

Samankaltaiset tiedostot
3 Sivupolku: metaforat & selittäminen

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

HTML-dokumenttien keskeiset piirteet

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

HTML-dokumenttien keskeiset piirteet. Keskeinen HTML-merkkaus == XHTML Basic. Hypertekstilinkit. Teksti

3 WWW-hypermedian perusta: HTML

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Digitaalisen median tekniikat xhtml - jatkuu

ICT1TN004. Lomakkeet. Heikki Hietala

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä.

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Johdatusta selainohjelmointiin

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Digitaalisen median tekniikat xhtml - jatkuu

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Code Camp for Girls. Sanna Nygård. Lokakuussa

2. PEHMEÄ XHTML XRAJAHTML

4 WWW-hypermedian perusta: HTML. Kehykset

XML, XHTML ja CSS. T Hypermediadokumentin laatiminen. Mikko Pohja

XHTML aloitus. Sisällys

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome

3 Verkkosaavutettavuuden tekniset perusteet

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Verkkosivut perinteisesti. Tanja Välisalo

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Tyylien käyttö. <LINK href="mystyle.css" rel="stylesheet" type="text/css"> 5 WWW-hypermedian perusta: HTML

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Taustaa. CGI-ohjelmointi

TIEDEJUTTUKURSSI FM VILLE SALMINEN

ARVO - verkkomateriaalien arviointiin

Ulkoasun muokkaus CSS-tiedostossa

MITÄ JAVASCRIPT ON?...3

HTML ja CSS. Tästä se lähtee: portfolio-sivusto. Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot.

XML johdanto, uusimmat standardit ja kehitys

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

Digitaalisen median tekniikat xhtml

Digitaalisen median tekniikat xhtml Harri Laine 1

Mitä direktiivi käytännössä velvoittaa?

Sivuston tiedotmysiteworthcheck.com

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

HTML perusteita (ei julkiseen jakeluun)

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

Luento 10: XML WWW:ssä

Kuvat. 1. Selaimien tunnistamat kuvatyypit

Helsingin yliopisto, TKTL Tietokantojen perusteet, s 2000 WWW-tietokantasovellukset Harri Laine 1. vapaamuotoiset tiedot

Johdatus rakenteisiin dokumentteihin

XML / DTD / FOP -opas Internal

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Digitaalisen median tekniikat. Luento 3: CSS

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Sivuston tiedotwindowsrepublic.com.au

CSS - tyylit Seppo Räsänen

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

Internetsivujen perusrakenne. Html-dokumentin keskeiset elementit ja attribuutit

Cascading Style Sheets

Palvelinpuolen ohjelmointi

Digitaalisen median tekniikat css tyylimääritykset Harri Laine 1

Digitaalisen median tekniikat css tyylimääritykset

W3C & verkkojulkaisun standardit

Sivuston tiedotgoogle.com

Tee html-sivu, jossa on yllä olevat kaksi taulukkoa.

Sivuston tiedotqbooksupportpho nenumber.com

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

2 Internet & WWW. 2 Internet & WWW

Notepad++ on ilmaisohjelma ja sen voi ladata osoitteesta:

Sivuston tiedotpechaticentr.ru

Digitaalisen median tekniikat. Luento 4: JavaScript

Kotisivujen teko. Jan Lindholm Kirkkonummen kansalaisopisto Syksy koodari.eu jsbin.com

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

3 HTML 4 pintaa syvemmältä

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

Digitaalisen median tekniikat xhtml

05/09/2007. Digitaalisen median tekniikat, s2007 HY/TKTL, XHTML osa 1. Harri Laine 1. XHTML-merkkauskieli. Digitaalisen median tekniikat xhtml

05/09/2007. Digitaalisen median tekniikat, s2007 HY/TKTL, XHTML osa 1. Harri Laine 1. XHTML-merkkauskieli. Digitaalisen median tekniikat xhtml

Sivuston tiedotakcpshop.de.websiteoutlook.com

Digitaalisen median tekniikat css tyylimääritykset

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

2 Web-lomakkeet. 2 Web-lomakkeet

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Kun suunnitelma on valmiina niin itse sivuston rakentaminen on jo helpompaa. (jatketaan tätä rakentelu vaiheessa.

4. Lausekielinen ohjelmointi 4.1

Sivuston tiedotemreemir.com

XML Technologies and Applications - harjoitustyö -

Sivuston tiedottools.seo-zona.ru

Sivuston tiedotmp3list.pro

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Artikkelien muokkaaminen sekä sisältöeditorin peruskäyttö

SeaMonkey pikaopas - 1

Sivuston tiedotwebstatinfo.com

Sivuston tiedotwixaccounting.com

ARVO - verkkomateriaalien arviointiin

Transkriptio:

2 HTML ja rakenteinen merkkaus 2. HTML ja rakenteinen merkkaus Kuva tuotettu Websites as graphs työkalulla (http://www.aharef.info/static/htmlgraph/) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 1

2.1 HTML:n taustaa ja historia MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 2

Hypertext Markup Language HTML on laitteistoriippumaton & ja standardoitu merkintäkieli hypertekstin tekemiseen Käytössä on useita eri HTML-versioita, nykyinen suositus HTML 4.01 (uusin HTMLsuositus on XHTML 1.1) HTML-dokumentit ovat oleellisesti tekstitiedostoja, perustana tekstipohjainen kuvaustiedosto (Keskeisessä roolissa on selainohjelma) sis. viittauksia toisiin HTML-dokumentteihin (hyperteksti) sis. viittauksia myös muuntyyppisiin tiedostoihin ja resursseihin (hypermedia) sis. lukuisia yhtymäkohtia toisiin standardeihin ja järjestelmiin dokumenttien lukeminen suoritetaan erityisen selainohjelman (browser) avulla Sopivasti webbiin sijoitettuna HTML-dokumentteja on mahdollista lukea miltä tahansa selainohjelmalla Ennen kuin perehdymme HTML-kieleen, käydään lyhyesti läpi kielen kehityshistoriaa MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 3

HTML-historiaa: 1991-1995 Ensimmäinen HTML-versio (SGML-sovellus) julkaistiin vuonna 1991 CERNissä (Tim Berners-Lee) Mosaic alkoi laajentaa merkintäkieltä kehitys (yleinen käyttö) HTML 2.0 (RFC 1866) esiteltiin vuonna 1994, tavoitteena tuolloin kesällä 1994 yleisesti käytössä olevien HTML-piirteiden standardointi Selainvalmistajien epästandardi kehitystyö jatkui, tuloksena Netscape, Microsoft, jne. -laajennuksia W3C:n (WWW Consortium) perustaminen vuoden 1994 lopulla hoitamaan WWW:hen liittyviä standardeja HTML 3.0 julkaistiin maaliskuussa 1995, mutta erot HTML 2.0:aan verrattuna olivat liian suuret, eikä HTML 3 koskaan oikeastaan toteutunut MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 4

HTML-historiaa: 1995-1999 Marraskuussa 1995 perustettiin HTML ERB (editoral review board) - yritysosapuolten ottaminen mukaan kehitystyöhön, - tavoitteena yhdenmukaisen standardin luominen HTML 3.2 tammikuussa 1997 1997 ERB korvattiin nykyisillä W3C:n työryhmillä Seuraava HTML-versio (4): Cougar... HTML 4.0 huhtikuussa 1998 Joulukuussa 1999 HTML 4.01 ( http://www.w3.org/tr/html4/ ) - 1) objektit ja kehykset, 2) kansainvälisyys ja monikielisyys, 3) siirtyminen tyylien käyttöön (style sheets), 4) parantunut tuki skripteille HTML 4 on käytännössä varsin laaja merkintäkieli, käsittäen kuvauksen yli 90 elementille ja 100:lle attribuutille HTML 4 on alkuperäisen HTML:n tavoin SGML-pohjainen MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 5

HTML-historiaa: 2000-2004 XML alkaa yleistyä rakenteisissa dokumenteissa ja myös HTML:ään sen käyttöä aletaan pohtia 2000-luvun taitteessa XML-pohjainen versio HTML 4.01:stä julkaistaan tammikuussa 2000 nimellä XHTML 1.0 XHTML 1.0:aa jatkokehitetään "XML-mäisemmäksi" ja lopputuloksena synstyy toukokuussa 2001 XHTML 1.0 standardi "XML-leirin" työskentely jatkuu edelleen ja W3C:n työryhmä aloittaa kokonaan uuden XHTML 2.0-standardin työstämisen. Uusi kieli eroaa vanhoista HTML:istä merkittävästi: Vahvasti XML-vetoinen: XForms-lomakkeet, Xframes-kehykset, DOM Events -> XML Events Taaksepäin epäyhteensopivia muutoksia merkkauksen kieliopissa MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 6

HTML-historiaa: 2004-2009 Vuonna 2004 työvaiheessa oleva XHTML 2.0 ei näytä vastaavan teollisuuden (selainvalmistajat, jne.) tarpeisiin: joukko toimijoita työstää eteenpäin HTML-kieltä itsenäisesti omassa WHATWG-työryhmässä (Web Hypertext Application Technology Working Group) Työryhmä kritisoi XHTML 2.0-kehitystä liian dokumenttikeskeiseksi ja toivoo HTML jatkokehittämistä soveltuvammaksi web-sovellusten ajoympäristönä Tammikuussa 2008 HTML 5:n ensimmäinen standardiluonnos syntyy virallisesti, kun WHATWG:n työstä tehdään W3C:n standardiluonnos (W3C First Public Working Draft of HTML 5). Kesäkuussa 2009 XHTML 2.0 kehitystyö "lakkautetaan": työryhmän työskentelyn määritellään päättyväksi vuoden 2009 lopussa -> XHTML 2.0:sta ei tule koskaan valmista standardia Syyskuussa 2009 HTML 5-standardi on vielä luonnos-vaiheessa, mutta kehittyy: Jo nyt HTML 5:n piirteille on selaintukea MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 7

HTML:n evoluutio pähkinänkuoressa MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 8

2.2 HTML-syntaksi ja terminologiaa 2. HTML ja rakenteinen merkkaus MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 9

Demo: HTML:n kielioppi HTML on SGML-merkintäkielen (ISO 8879:1986) pohjalta kehitetty merkintäkieli; XHTML-perhe perustuu XML-merkintäkieleen HTML-dokumentti on tekstimuotoinen Unicode-tiedosto (~ISO/IEC 10646) Tiedosto sisältää selaimen näytettäväksi tarkoitettua tekstiä ja tekstin merkitystä kuvaavia koodeja ( loogiset elementit) <h1>moi maailma!</h1> Muodollisesti jokainen HTML-tiedosto tulisi täsmällisesti HTML-määrityksessä annettujen ohjeiden mukaisesti - käytännössä näin ei kuitenkaan aina tehdä (ja WWWselaimet katsovat asian läpi sormien) Yksinkertaisten HTML-dokumenttien kirjoittaminen on erittäin helppoa, kirjoittaminen onnistuu millä tahansa tekstinkäsittelyohjelmalla MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 10

HTML-dokumentti Määrämuotoinen tekstitiedosto. Pääte usein.html Koostuu peräkkäisistä ja sisäkkäisistä elementeistä sekä näihin elementteihin liittyvistä attribuuteista Jäsentyy elementtien määrittelemään hierarkkien perusteella puurakenteeksi html / \ head body / title meta div \ h1 p a MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 11

Elementit Elementtejä on kahta perustyyppiä: 1) (epätyhjiä) elementtejä, joilla voi olla sisältönä tekstiä tai toisia elementtejä: <h1>hei Maailma!</h1> <p>hei <b>maailma</b>!</p> 2) tyhjiä elementtejä <br> Elementit merkataan dokumenttiin elementtien alku- ja lopputagien avulla HTML:ssä tyhjän elementin lopputägin voi jättää kirjoittamatta, mikäli elementti on kieliopissa määritelty tyhjäksi. XHTML-suosituksen mukaan tyhjät elementit pitäisi kirjoittaa XML-syntaksin mukaisesti erityisen tyhjän elementin koodin avulla, esim: <br/> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 12

Attribuutit Joillekin elementeille voidaan antaa myös attribuutteja (eräänlaisia ominaisuuksia) Attribuutit luetellaan elementin alkutagissa. Toisin kuin elementtien järjestyksellä, attribuuttien järjestyksellä ei dokumentissa ole mitään merkitystä Esimerkki: <a href="sivu.html">ks. myös toinen sivu.</a> <img src="kuva.gif" alt="esimerkki kuvan sijoittamisesta"> Jos selain ei ymmärrä tagia tai attribuuttia, se jätetään huomiotta (ongelmia tosin seuraa kuten tullaan huomaamaan) Osa elementeistä on tarkoitettu esitettäväksi lukijalle suoraan, osa ei, esim: <html> <head> <title>sivun otsikko</title> <link rel="stylesheet" href="fancy.css" type="text/css"> <head> <body> <p>check this out!</p> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 13

Muut rakenteet Elementtien ja attribuuttien lisäksi HTML-dokumentissa voi esiintyä myös: Kommentteja, jotka ohitetaan käsittelyssä: <!-- tämä on kommentti - kahden miinusmerkin sisällyttäminen kommentteihin ei ole sallittua --> Merkki- ja entiteettiviittauksia. Alkavat &-merkillä, päättyvät ;-merkkiin ä &e65; XML- ja/tai dokumentin tyyppijulistus <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <?xml version="1.0"?> <html xmlns="http://www.w3.org/1999/xhtml"> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 14

Esimerkki terminologiasta <a href="http://www.tut.fi">etusivulle tästä</a> Elementti Elementin tyypin nimi Sisältö Alkutagi Lopputagi Attribuutti 1 Attribuutin 1 nimi Attribuutin 1 arvo Merkkiviittaukset <a href= http://www.tut.fi >Etusivulle tästä</a> a Etusivulle tästä <a href= http://www.tut.fi > </a> href= http://www.tut.fi > href http://www.tut.fi Etusivulle tästä Etusivulle tästä MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 15

HTML-dokumentin tulkinta Kun selain lataa HTML-dokumentin, se luo siitä sisäisen mallin elementtien muodostaman hierarkkian perusteella. HTML määrittelee selaimelle dokumentin sisällön ja rakenteen HTML-dokumentin esittäminen perustuu karkeasti seuraaviin sääntöihin: Tyyppijulistus määrittelee sallitut elementit ja attribuutit sekä kieliopin Elementtien sisältö näytetään Metatietoa sisältävät elementit kuitenkin piilotetaan Jokaiselle elementille varataan oma, suorakaiteenmuotoinen alue Elementit ladotaan tyypistä riippuen joko omalle riville tai samalle riville toisten peräkkäisten elementtien kanssa Attribuutteja ei näytetä Entiteetit koodataan niitä vastaaviksi merkeiksi Esim. korvautuu -merkillä MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 16

Hyviä käytäntöjä HTML ei pakota seuraaviin merkkaustapoihin, mutta niitä voidaan pitää joka tapauksessa hyvinä käytäntöinä joita tulisi aina noudattaa: Kirjoita elementtien ja attribuuttien nimet pienin kirjaimin HTML 4 ei erottele isoja ja pieniä kirjaimia, mutta XHTML:t erottelevat. Pienet kirjaimet ovat aina varma vaihtoehto Merkitse elementin alku- ja lopputagit aina esille Lopputagin voi joissain kieliopeissa jättää pois, mutta tämä voi aiheuttaa tyhmään jäsennintä käyttäessä ongelmia Merkitse attribuuttien arvojen ympärille aina heitto- tai lainausmerkit HTML 4 ei tähän pakota, mutta muissa versioissa voi tulla ongelmia (tai jos attribuutin arvo sisältää välilyöntejä) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 17

2.3 HTML-merkkauksen perusteet 2. HTML ja rakenteinen merkkaus MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 18

HTML-dokumentin yleisrakenne Jokaisella HTML-dokumentilla on tietty yleisrakenne. HTML-dokumentti koostuu (lähinnä metatietoa sisältävästä) otsikko-osasta ja (varsinaisen asiasisällön sisältävästä) rungosta Esimerkki: (HTML 4.01) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/tr/html4/strict.dtd"> <html> <head> <title>validi HTML-dokumentti</title> </head> <body> <h1>validi HTML-dokumentti</h1> <p>hei vaan, maailma!</p> </body> </html> Suurin osa HTML-koodauksesta keskittyy body-elementin sisältöön. Framesettyyppisillä dokumenteilla body-elementti korvataan frameset-elementillä. MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 19

HTML-dokumentin tyyppimäärittely HTML-kieli on syntaktisesti määritelty kielen määrittelyssä käytetyn dokumentin tyyppikuvauksen (document type definition, DTD) avulla. Dokumenttityyppejä on useita erilaisia, dokumentin perustyypistä ja HTML-version standardiasteesta riippuen - HTML DTD (ks. http://www.w3.org/tr/html4/ ) - XHTML DTD (ks. http://www.w3.org/tr/xhtml1/ ) HTML-dokumentti voi olla jotain kahta perustyypistä - (sisältö)dokumentti, ts. dokumentti joka on tarkoitettu esitettäväksi & luettavaksi selaimessa (olennaisena sisältönä BODY-elementti) - kehysrakenteen kuvaava dokumentti, ts. kuvaus selainikkunan rakenteesta (olennaisena sisältönä FRAMESET-elementti) Dokumentin tyyppimäärittely on geneerinen malli, jota jokaisen (oikeanmuotoisen eli validin) HTML-dokumentin tulisi noudattaa Käytännössä tyyppimäärittelyn voi jättää poiskin (mutta tyyppimäärityksen merkitys rakenteisessa dokumentissa on syytä ymmärtää) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 20

HTML-dokumenttien keskeiset piirteet HEAD-osa BODY-osa HTML:n ydinattribuutit ([core attributes]) Keskeiset kieleen liittyvät attribuutit, kansainvälisyys Lohkotyyliset elementit & tekstityyliset elementit Kuvaileva merkkaus vs. formatoitu teksti HTML-spesifikaatio olettaa erityisesti tyylien (esim. CSS) ja skriptien (esim. JavaScript) olemassaolon (vrt. XHTML Basic) Tapahtumankäsittely MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 21

HTML:n keskeiset elementit HTML 4 on varsin laaja spesifikaatio -- no mikäs sitten on keskeisin osa HTML:ää? (kohtuullisen hyvä) vastaus: XHTML Basicin sisältämä merkkaus: Structure module body, head, html, title Text module abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var Hypertext Module a List Module dl, dt, dd, ol, ul, li Basic Forms Module form, input, label, select, option, textarea Basic Tables Module caption, table, td, th, tr Image Module img Object Module object, param Metainformation Module meta Link Module Link Base Module base EI MUKANA b, i, map, frame, style, MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 22

Teksti Tekstin esittämistavat: tekstin merkitystä kuvaavat merkinnät vs. tekstin ulkoasua kuvaavat merkinnät, vrt: <del>xhtml 1.0</del><ins>XHTML 1.1</ins> on HTML:n uusin virallinen versio. <small>tavallista pienempää tekstiä.</small> <code> function tervehdi() { alert( Moro nääs! ); } </code> Tekstin jako, kappaleet ja otsikot (p, div, h1-h6, ), tekstin merkitystä kuvaavat elementit (abbr, acronym, cite, code, dfn, rm, kbd, samp, strong, var, ) Tekstin ulkoasua kuvaavat muotoilut (b, big, i, small, strike, sub, sup, tt, u, ), värien ja efektien käyttö Poistuva fontinkäsittely (basefont, font), tekstin välistys ja asemointi (br, pre, center, ), listarakenteet (ul, ol, dl) + muuta (blockquote, address, hr, ) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 23

Hypertekstilinkit Hypertekstiä syntyy erityisen ankkuri-elementin avulla. <a href="http://www.w3.org/markup/">html:n kotisivu</a> <a href="../index.html"><< Etusivulle</a> <a href="sarjat/julmahuvi/">studio Julmahuvi</a> ei jätä kylmäksi! Nimetyt ankkurit: linkin kohteen osoittaminen HTML-dokumentin sisällä <p><a name="lasi">lasi</a> on vauhdikas neuvostoliittolainen toimintajännäri entisen KGB-agentin odysseiasta...</p>... 19.00 <a href= elokuvat.html#lasi >Lasi</a> Oleellisesti samaan päästään myös id-attribuutin käytöllä nimeämällä elementti <p id="lasi">lasi on vauhdikas neuvostoliittolainen toimintajännäri entisen KGB-agentin odysseiasta...</p> HTML-dokumenttien ohella linkit voivat viitata myös muihin tiedostoihin, tällöin tiedostojen käsittely riippuu selainohjelmasta (plugins, helper applications, ): Vilkaise myös <a href="viruscontainer.doc">virustiedote</a>! MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 24

Entiteetit, merkkiviittaukset, metatieto ja objektit HTML-dokumentin sisään voi upottaa myös (korvattavien elementtien avulla) objekteja, joita HTML ei suoraan sisällä kuten kuvia sekä entiteetti- ja merkkiviittauksia, esim: <img src="pic.jpg" alt="kuva"> Hyvää yötä ABC HTML-metatiedon avulla taas voidaan toteuttaa esim. client pull -operaatio tai vain kuvailla dokumentin sisältöä: <meta http-equiv="refresh" content="0;url=./dir.cgi"> <meta name="keywords" lang="en" content="mathm-37000, hmp"> Objektien käsittely HTML-kielen ulkopuolella (object- ja embed-tagit) Lisää ominaisuuksia: skriptit (script) ja appletit (applet& object) - Java, JavaScript, VBScript, MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 25

Taulukot, kuvat, kuvakartat, table (taulukko), esim. <table> <thead><tr><td>nimi</td><td>sijainti</td></tr></thead> <tbody><tr><td>miska</td><td>helsinki</td></tr></tbody> </table> img (kuva) map (selainpäässä toimivan kuvakartan tekeminen) <img src="miska.jpg" usemap="miskamap" alt="miska, Martti ja James"> <map name="miskamap"> <area shape="rect" coords="20,50,170,300" href="martti.html" alt="martti valmiina"> <area shape="circle" coords="220,220,50" href="jousi.html" alt="nuolessa on nukutusainetta"> </map> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 26

Palvelinpään kuvakartan toteuttaminen onnistuu myös (edellyttäen tosin CGI-skriptin tms. kirjoittamista) <p> <a href="http://www.acme.com/cgi-bin/competition"> <img src="kisa.gif" ismap alt="missä jallu luuraa?"></a> </p> Sovelman lisääminen sivulle onnistuu applet- ja object-elementtien avulla: <applet code="nervoustext.class" width="375" height="50"> <param name=text value="hypermedian perusteet"> </applet> <object codetype="application/java" classid="java:nervoustext.class" width="375" height="50"> <param name="text" value="hypermedian perusteet"> </object> object-elementin avulla HTML-dokumenttiin voidaan periaatteessa upottaa mitä tahansa (toinen HTML-dokumentti, appletti, kuva, tai jokin muu, läh. pluginin tulkitsema & ymmärtämä resurssi) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 27

Kehykset Varoituksen sana heti alkuun: kehysten käyttö on teknisesti mahdollista ja helppoa, käytännön sovellustyössä niitä kannattaa kuitenkin välttää (keksitkö miksi?). Selaimen hierarkkisen ikkunarakenteen määrittäminen tapahtuu kehysten (frame) avulla (~linkkikontekstit; kehykset näkyvät yleensä ruudukkona yhden fyysisen käyttöliittymätason ikkunan sisällä) Määritys tapahtuu body-elementin korvaavan frameset-elementin avulla, esim: <html> <title>hmp05 kehyksillä <title> <frameset cols="150,*"> <frame src="valikko.html" name="valikkokehys"> <frame src="etusivu.html" name="sisaltokehys"> <noframes> Selaimesi ei tue kehyksiä, valitse <a href= eikehyksia.html >kehyksetön versio</a>. </noframes> </frameset> </html> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 28

Linkkien avautumisikkunan osoittaminen tapahtuu target-attribuutilla 2. HTML ja rakenteinen merkkaus Takaisin <a href="etusivu.html" target="sisaltokehys">etusivulle</a> Ellei toisin määrätä, linkit aukeavat siihen ikkunaan, jossa linkin alkupää sijaitsee. Oletuskohteen uudelleen määrittäminen tapahtuu base-elementillä: <head><base target="sisaltokehys"></head> HTML 4.0:n myötä myös ns. inline-kehysten (ns. kelluva kehys) käyttö on periaatteessa mahdollista iframe-koodin avulla (selaintuki tiettyjen ominaisuuksien suhteen vaihtelee!): <p>ajankohtaista: <iframe src="ajankohtaista.html" width="150" height="100" align="right"> <p> Selaimesi ei tue kelluvia kehyksiä, valitse <a href="ajankohtaista.html">ajankohtaista</a> nähdäksesi tuoreimmat kuulumiset. </p> </iframe> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 29

Kuvaileva vai formatoiva merkkaus? HTML-kielen avulla voi tehdä sekä kuvailevaa että formatoivaa merkkausta Kuvaileva merkkaus pyrkii esittämään tiedon rakennetta Formatoiva merkkaus pyrkii esittämään paitsi tiedon rakenteen niin myös sen esitystavan HTML:ää käyttäessä tavoitteena tulisi pääsääntöisesti olla kuvaileva merkkaus: Kuvailevassa HTML-merkkauksessa ei kerrota mitään dokumentin tyyleistä, vaan ainoastaan sen rakenteesta ja sisällöstä Tyyli liitetään dokumenttiin erillisellä tyylitiedostolla (näistä tuonnempana) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 30

Dokumentin validointi ja sen merkitys Varsinkin HTML:ää käsin kirjoittaessa virheitä tulee helposti tehtyä. Kaikki virheet eivät kuitenkaan näy selaimella. Selaimet jäsentävätkin HTMLdokumentteja usein hyvin ymmärtäväisellä asenteella: - selaimet ohittavat virheet ja tuntemattomat koodit ellei toisin määrätä - luovat arvaukset (esim. "<" ja ">" -merkit) Eri selaimet voivat kuitenkin tulkita virheellisesti kirjoitetun merkkauksen eri tavalla: tällöin sivu näyttää eri selaimilla erilaiselta ja ongelmia tulee HTML:n voi kuitenkin tarkastaa validoivan HTML-jäsentimen avulla. Validoiva HTMLjäsennin tarkistaa, että kirjoitetun dokumentin kielioppi ja rakenne vastaavat standardia: Verkko on saatavilla erityisesti W3C:n HTML validaattori-palvelu: http://validator.w3.org/ MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 31

Demo: Validaattorin käyttö Kokeillaan HTML:n validointia W3C:n HTML Validator palvelun avulla Huomaa: Validius ei takaa sitä, että elementtejä on käytetty kuvailevan merkkauksen hengessä oikein! Koska HTML 4.01 on SGML-sovellus, onnistuu validien HTML-dokumenttien käsittely myös yleisillä SGML-editoreilla ja selaimilla Koska XHTML 1.0 on XML-sovellus, MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 32

2.4 HTML-lomakkeet ja palvelinohjelmointi MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 33

Lomakkeet Lomakkeet (form) tarjoavat HTML-kehittäjälle keinon rakentaa yksinkertaisia HTMLperustaisia käyttöliittymiä jotka koostuvat nappuloista, tekstikentistä, edit-ikkunoista jne. Lomakkeet eivät sellaisenaan tee yhtään mitään; lomakkeiden toiminnallisuuden määrittely tehdään käytännössä joko selain- tai palvelinpään skriptien avulla Käydään seuraavaksi läpi lomakkeiden toteuttamista sekä lyhyesti sitä kuinka lomakkeita voidaan periaatteessa käsitellä MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 34

Demo: Lomakkeen elementit HTML 4.01 ja XHTML 1.0 määrittelevät seuraavat lomake-elementit: form input button select, optgroup, option textarea isindex label fieldset, legend Käydään näistä läpi keskeisimpiä MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 35

Demo: Pieni lomake-esimerkki Esimerkki: <form action="http://www.example.com/handler.php" method="post"> <p><label> Nimi: <input type= text name= firstname > </label></p> <p> <input type="radio" name="sex" checked="checked" value="female">nainen <br> <input type="radio" name="sex" value="male">mies </p> <p><input type="submit" value="lähetä"></p> </form> MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 36

Lomakkeen toimintaperiaate Lomakkeeseen määritellyt syötekentät annetaan käyttäjälle täytettäväksi Valmis lomake lähetetään eteenpäin käsiteltäväksi Normaalisti lähetys tehdään merkkaamalla lomakkeeseen submit-nappi Lomakekäsittelijä määritellään form-elementin action-attribuutilla Lomakkeeseen syötetyt tiedot välittyvät annettuun kohteeseen lomake itsessään ei käsittele tulosta vaan ainoastaan mahdollistaa tietojen täyttämisen MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 37

Lomakevastauksen koodaus Lomakkeeseen syötetyt tiedot lähetetään HTTP-viestinä käsittelijänä. Lomakkeen tiedot tallentuvat avain-arvo -pareina: Avain = lomakekentän nimi (name-attribuutti) Arvo = lomakkeen sisältö (usein value-attribuutti) Viestin koodaustapa riippuu valitusta lähetystavasta (form:n method-attribuutti) Vaihtoehtoja ovat GET ja POST Oletusarvo on GET Oikean metodin valinta ei ole yksinkertaista. Eräs nyrkkisääntö (ks. 1 ): GET jos lomaketta käytetään kysymys-tyyppisesti (esim. Hakukoneessa) POST jos lomake on enemmänkin kertaluontoinen tilaus 1 http://www.w3.org/2001/tag/doc/whentouseget.html MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 38

Lomakkeen lähetys GET-metodilla (syventävää tietoa) <form action=... method= GET > Käsittelijälle lähetetään tavallinen sivunhakupyyntö (GET) Lomakkeelle annetut parametrit koodataan suoraan palvelimelta pyydettävään URLosoitteeseen: http://www.example.com/handler.sh?name=matti&sex=male Rajallinen kapasiteetti (yli 2048 merkkiä pitkä URL ei välttämättä toimi) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 39

Lomakkeen lähetys POST-metodilla (syventävää tietoa) POST-metodi: <form action=... method= POST > Lähetetään GET-hakupyynnön sijaan POST-pyyntö Lomakkeen data koodataan HTTP-viestin sisällöksi URL taas ei muutu POST / HTTP/1.1... Content-Type: application/x-www-form-urlencoded Content-Length: 25 firstname=matti&sex=male Suuriakin määriä dataa voidaan siirtää. Palvelin usein määrittelee kuitenkin maksimin mitä se suostuu ottamaan vastaan (usein 10 megatavua) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 40

Lomakekäsittelijän toteuttaminen: idea HTML ei määrittele tapaa, jolla lomakkeenkäsittelijä toteutetaan. Lomakkeiden käsittelyyn tarvitaan ohjelmointia! Idea on seuraava: Kun tavallisesti web-palvelimen saa sivupyynnön, se lähettää vastauksena staattisen HTML-dokumentin (tai kuvan) Kun kyseessä on lomakkeen käsittelijä, haluttaisiin kuitenkin staattisen dokumentin lataamiseen sijaan ajaa ohjelma, joka käsittelee lomakkeen Kun ohjelma on valmis, se palauttaa lopputuloksena esimerkiksi HTMLdokumentin. Kaikki käsittely tapahtuu palvelinpäässä asiakaspäässä mikään ei näennäisesti muutu MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 41

CGI Ohjelman ajamiseen palvelinpäässä on useita vaihtoehtoja yksi niistä on CGI CGI (Common Gateway Interface) on standardi menettely ulkoisten ohjelmien ajamiseen web-palvelimella CGI ei rajoita ajettavien ohjelmien toteutustekniikkaa. Ohjelmat voidaan kirjoittaa esim. C:llä ja kääntää palvelimella ajettaviksi komentoriviohjelmiksi. Usein CGI-ohjelmat kirjoitetaan jotain skriptikieltä käyttäen. Tällöin vältytään kääntämiseltä ja ohjelmia on nopea kokeilla ja muuttaa MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 42

Demo: Lomakkeenkäsittelijän toteuttaminen sh-skriptillä Koodataan käsittelijä (handler.cgi) #!/bin/sh echo "Content-type:text/html" echo "" echo "<html><title>skriptidokumentti</title><body>" date echo "<hr>parametri: <b>" echo $QUERY_STRING echo "</b>" echo "</html></body>" Käytännön vinkkejä: Tavallisesti staattiset HTML-dokumentit sijoitetaan palvelimella public_htmlkansioon CGI:n kautta ajettavat ohjelmat sijoitetaan tavallisesti puolestaan cgi-bin-kansioon.cgi-päätteen käyttäminen takaa, että tiedosto varmasti ajetaan ohjelmana (ei näytetä sellaisenaan käyttäjälle) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 43

Parempia vaihtoehtoja CGI:lle? (syventävää tietoa) CGI:n avulla on helppo esitellä periaate, kuinka palvelinohjelmat toimivat Käytännössä CGI ei kuitenkaan ole tehokkain tai paras vaihtoehto Vaihtoehtoja CGI:lle: FastCGI CGI:ssä jokainen palvelupyyntö on oma prosessi. FastCGI-rajapinnassa ongelma korjautuu ja pyyntöjen käsittely on tehokkaampaa Skriptitulkin ajo suoraan web-palvelimella Toteutusteknologiakohtainen ratkaisu: esimerkiksi Python-koodia voi ajaa Apache-palvelimella mod_python-laajennuksella MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 44

Muutamia skriptikieliä palvelinohjelmointiin (syventävää tietoa) PHP (www.php.net) Erittäin suosittu Perl (www.perl.org) Vanhempi skriptikieli. Nykyään vähemmän käytössä Python (www.python.org) Erityisesti isoissa sovellusprojekteissa käytetään skriptikielen lisäksi soveltuvaa web-ohjelmointikehystä (esim. Pythonilla TurboGears tai Django) MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 45

HTML-resursseja verkossa W3C:n johdanto HTML-kieleen http://www.w3.org/markup/guide/ Ks. Kohta Getting started with HTML HTML 4 spesifikaatio http://www.w3.org/tr/html4/ josta SGML:n ja HTML:n suhteesta kiinnostuneiden kannattaa tutustua osaan "On SGML and HTML" XHTML 1.0 spesifikaatio http://www.w3.org/tr/xhtml1/ HTML validaattori-palvelu http://validator.w3.org/ Toisin kuin selaimet, validaattori löytää pienimmätkin merkkausvirheet. 2 2 Kuva: jesper / Flickr.com (http://www.flickr.com/photos/jesper/346483297/). Joitain oikeuksia pidätetään. MATHM-37100 JOHDATUS HYPERMEDIAAN (syksy 2009) 46