Vähänkin edistynyt saa XHTML ja CSS-kielien avulla saa vallan mainiosti hienonkin ulkoasun käyttämättä ollenkaan grafiikkaa. Sivun saa näyttämään hyvältä pelkästään CSS (Cascading Style Sheets -tyylimäärittelyjen avulla. Yksi hyvä esimerkki on tämä sivu jota parhaillaan katsot.
- Aloittaminen on helppoa: Ensin sinun pitää valita mitä tekstipohjaista ohjelmaa käytät. Olet varmaan kuullutkin joistakin ohjelmista, joissa ei tarvitse kuin rakennella ulkoasu palikoista: niitä ei kannata käyttää, sillä ne eivät tee standardin mukaista jälkeä ja tunkevat omaa koodia sekaan ja et saa itsesi näköistä sivua vaikka kuinka yrittäisit. Tekstipohjaisista ohjelmista suosituin ja kevyin on Notepad, joka löytyy sinunkin tietokoneestasi (olettaen että käytät Windows-käyttöjärjestelmää) C:/Windows/Notepad.exe. Muitakin hyviä ohjelmia on olemassa, kuten ConText ja HTML-Kit. Itse käytän ConTextiä ja Notepadia.
Käytätpä mitä yksinkertaista tekstinkäsittelyohjelmaa tahansa, tässä oppaassa neuvon Windowsin Notepadin mukaan. Tekstiähän se vain on. Voit käyttää lempiohjelmaasi yhtä lailla.
Ensimmäisenä tee itsellesi kansio koneellesi. Minulla www-sivut ovat kaikki omassa kansiossaan hakemistossa E:\Web\Websites\. Voit päättää kansion paikan ja nimen itse. Jos et keksi paikkaa, tee vaikka työpöydälle uusi kansio omalla nimelläsi varustettuna. (Huom! Tietokoneen paikallista hakemistoa ei tule sekoittaa julkisen www-sivun hakemistoon, paina se päähäsi jo tässä vaiheessa!)
Uuden kansion luominen: Hiiren oikea näppäin > Uusi > Kansio
Uuden html-tiedoston luominen: Hiiren oikea näppäin > Uusi > HTML-Tiedosto
Uuden html-tiedoston luominen jos listassa ei ole suoraan "Luo uusi HTML-Tiedosto": Hiiren oikea click > Uusi > Tekstitiedosto ja varmistathan että tunnettujen tiedostotyyppien tunnisteet eivät ole piilotettuna! Mikä tahansa kansio > Asetukset/Tools > Kansion Asetukset / Folder Options > (välilehti:) Näytä / View > Piilota tunnettujen tiedostojen tunnisteet / Hide extensions for known filetypes (ruksi pois) Kun olet luonut uuden tekstitiedoston ja näet .txt-päätteen, nimeä tiedosto index.html-nimiseksi painamalla tiedosto valittuna F2 tai Oikea hiiren näppäin > Nimeä uudelleen.
Nyt sinulla pitäisi olla oma kansio työpöydällä, jossa on tekemäsi tyhjä index.html-tiedosto. Etusivun nimi on aina index.html, sillä selain tunnistaa muiden saman kansion sivujen nimistä index-nimen ja siirtyy sinne ensimmäisenä. Avaa tiedosto Windowsin Notepadilla (Hiiren oikea näppäin > Avaa > Notepad) tai jollain muulla haluamallasi raakatekstinkäsittelyohjelmalla (Wordpad tai Word -tyyppiset ohjelmat soveltuvat tähän huonosti!). - Ennen kuin lähdetään koodaamaan on syytä pitää mielessä että XHTML-kielen tagit kirjoitetaan aina pienellä (<body>) toisin kuin perinteisen HTML-kielen tagit voi kirjoittaa myös isolla (<BODY>). Itse XHTML-koodi on helppoa ja loogista. XHTML-sivu tarvitsee tietyt pakolliset määritelmät, jotta selain osaa lukea sitä. Sivu aloitetaan yleensä dokumenttityypin määrittelyllä ja <html>-tagilla. Tässä esimerkissä käytämme dokumenttityyppiä XHTML 1.0 Transitional, joka on yksi suosituimmista. Transitional on yleensä aina vapaampi kuin Strict, mikä myös yksi syy sen suosioon, sillä koodin ei tarvitse olla niin pikkutarkkaa verrattuna Strictiin ja silti se on yhtä toimiva.
Ensin siis luodaan dokumenttityyppi ja html-dokumentin määritelmä:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">W3.orgin linkit ovat vain varmisteita siitä että sivu tulee xhtml-kieliopillisesti tarkastetuksi.
<html xmlns="http://www.w3.org/1999/xhtml">
Head-osa, eli sivun pää:<head>Head sisältää paljon erilaisia sivun kokonaisuuteen vaikuttavia määritelmiä, joista tärkeimpiä on mm. tyylitiedoston määrittäminen. Aivan ensimmäisenä säädetään se pakollinen: Character Set, eli kirjaimien koodaus, skandit. Charset auttaa user agenttia, eli usein selainta tai käyttöjärjestelmää ymmärtämään tekstiä. Yleensä käytetään utf-8:aa, sillä se on käyttäjäystävällisempi ainakin niille ketkä käyttää useampia kieliä sivuillaan. Jos sivulla on utf-8 käytössä, se ei ymmärrä automaattisesti Ä eikä Ö kirjaimia koodissa, vaan tulostaa ne kysymysmerkkeinä tai epämääräisenä ä tai ö -merkkeinä, joten erikoismerkit pitää merkata koodiin tietyillä merkeillä. Siksi myös muitakin charsettejä voi harkita. Meillä eurooppalaisilla suosittu on usein iso-8859-1 tai iso-8859-2 (iso-8859-?).
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Otsikko</title>
<link rel="stylesheet" href="tyylit.css" type="text/css" />
<link rel="icon" href="favicon.gif" type="image/gif" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="bookmark icon" href="favicon.ico" type="image/x-icon" />
</head>
Head tagien väliin laitetaan yleensä meta-määritelmiä (hakusanoja ja tietoja), tyylimääritelmiä, scriptimääritelmiä, tai vaikkapa pieniä kuvakkeita, kuten ylläolevassa esimerkissä. Polut ovat suhteessa samaan kansioon, ellei toisin määritetä.
Seuraavaksi on vuorossa Body- eli ruumisosa, johon laitetaan sisältö ja ulkoasulliset rakenteet. Huomaathan että tavalliset rivinvaihdot eivät tulostu html-sivulla rivinvaihdoiksi!
Aloituskoodi näyttää siis yleensä (kokonaisuudessaan) tältä:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">Tässä vaiheessa olet luultavasti saanut aloituskoodin kokoon html-tiedostoosi. Tallenna tiedosto ja katsele sitä selaimellasi: Avaa selain (mitä sitten käytätkin) ja kansio, jossa on html-tiedostosi. Raahaa/siirrä index.html hiirelläsi selainikkunaan ja sivun pitäisi aueta. Tässä vaiheessa et näe vielä mitään muuta kuin valkoisen sivun, jonka otsikkona on Otsikko. Jos kaikki meni näin, olet hyvässä vaiheessa! (joissakin html-tekstieditoreissa on oma esikatseluikkuna, mutta jos sinun käyttämässäsi ei ole edellä opetettu keino tulee tarpeeseen)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Otsikko</title>
<link rel="stylesheet" href="tyylit.css" type="text/css" />
<link rel="icon" href="favicon.gif" type="image/gif" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="bookmark icon" href="favicon.ico" type="image/x-icon" />
</head>
<body>
</body>
</html>
Seuraavaksi on aika luoda sivulle rakenne, sisältö ja ulkoasu. Kaikki nämä tehdään sivun <body>-tagejen väliin. Ulkoasussa ensimmäisenä on yleensä aina ns. "header", sivun ylin osa, mutta nyt kun luomme grafiikatonta ulkoasua, headerin sijaan voidaan hypätä suoraan sisältöön. Luodaan siis uusi <div> <body>-tagin sisään:<div class="loota"><div> on rakenteellinen elementti. Ennen käytettiin <table>-tageja, eli taulukoita joiden käyttäminen ulkoasussa ei ole nykyään niin standardien mukaista. class on tyylimääritelmä ja antaa diville tyylimääritelmän nimen tyylitiedostossa, tälläkertaa loota. Jatkossa voit nimetä eri tagit miksi haluat.
<div class="boksi">
<h1>Otsikko</h1>
Minun ensimmäinen sivuni.
</div>
</div>
<h1>-tagi on suurin otsikkotagi. Muita tageja ovat ainakin <h2>, <h3> ja <h4>.
Sivusi pitäisi näyttää nyt jotakuinkin tältä:
Otsikko
Minun ensimmäinen sivuni.
Älä vielä huolehdi sivusi ulkonäöstä! Fontit ja taustat ovat oletuksia, tausta valkoinen, fontti musta Times New Roman (tai joku muu käyttöjärjestelmästä riippuen). Tyylit luodaan myöhemmin. Pysy vain mukana.
Tässä vaiheessa sivuille voi luoda muuta sisältöä. Jos sisältöä ei vielä ole ja halutaan vain nähdä miltä sivu näyttää, sivuntekijät lisäävät usein Lorem Ipsum -nimistä liirumlaarumia. Lorem Ipsumia voi luoda generaattorilla osoitteessa lipsum.com. Tälle sivulle luomme huvin vuoksi 4 kappaletta (paragraphs) tekstiä, jotta näkisimme miltä se näyttää sisällössä. Eli korvataan "Minun ensimmäinen sivuni."-teksti "Lorem ipsum...."-tekstillä ja lopputulos näyttää tältä:Otsikko
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed eros libero, lacinia sed, facilisis ut, ultrices in, felis. Pellentesque sit amet odio. Praesent suscipit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin est. Maecenas vel orci. Curabitur ipsum. Suspendisse sit amet leo. Praesent suscipit. Cras ante. Maecenas ultrices adipiscing leo. Mauris aliquet aliquam orci. Aliquam suscipit dignissim lacus. Phasellus id tellus. In hac habitasse platea dictumst. Morbi adipiscing, turpis quis cursus aliquet, elit quam tempor nisl, feugiat iaculis ipsum neque non nulla. Nullam odio ligula, convallis vitae, lobortis fringilla, aliquam eu, magna. Proin at pede nec magna vulputate blandit. Vestibulum aliquet sollicitudin est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Etiam sit amet leo vitae magna ornare ultrices. Sed in ante. - Nyt olemme luonee perussivun. Seuraavaksi luomme yksinkertaisen valikon. Nykyisten standardien mukaan valikot ovat listassa. Luomme siis uuden linkkilistan, josta sovellamme valikon CSS-tyylimääritelmillä. Emme myöskään käytä mitään monimutkaisempaa valikkomuotoa, vaan teemme kaiken yksinkertaisesti jotta asia pysyisi mahdollisimman helppona. Lisätään siis seuraavanlainen koodi ennen otsikkoa:
<ul class="valikko">Huom! voit päättää sivujen nimet itse, mutta tässä esimerkissä sivut ovat sivu1.html, sivu2.html ja sivu3.html ja niiden täytyy olla juuri sen nimisiä miksi ne on määritelty. Koko sivun lähdekoodi näyttää tältä:
<li><a href="sivu1.html">Sivu 1</a></li>
<li><a href="sivu2.html">Sivu 2</a></li>
<li><a href="sivu3.html">Sivu 3</a></li>
</ul><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">...ja katseltuna sivu näyttää jotakuinkin tältä.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Otsikko</title>
<link rel="stylesheet" href="tyylit.css" type="text/css" />
<link rel="icon" href="favicon.gif" type="image/gif" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="bookmark icon" href="favicon.ico" type="image/x-icon" />
</head>
<body>
<ul class="valikko">
<li><a href="sivu1.html">Sivu 1</a></li>
<li><a href="sivu2.html">Sivu 2</a></li>
<li><a href="sivu3.html">Sivu 3</a></li>
</ul>
<div class="loota">
<div class="boksi">
<h1>Otsikko</h1>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed eros libero, lacinia sed, facilisis ut, ultrices in, felis. Pellentesque sit amet odio. Praesent suscipit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin est. Maecenas vel orci. Curabitur ipsum. Suspendisse sit amet leo. Praesent suscipit. Cras ante. Maecenas ultrices adipiscing leo.
Mauris aliquet aliquam orci. Aliquam suscipit dignissim lacus. Phasellus id tellus. In hac habitasse platea dictumst. Morbi adipiscing, turpis quis cursus aliquet, elit quam tempor nisl, feugiat iaculis ipsum neque non nulla. Nullam odio ligula, convallis vitae, lobortis fringilla, aliquam eu, magna. Proin at pede nec magna vulputate blandit. Vestibulum aliquet sollicitudin est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Etiam sit amet leo vitae magna ornare ultrices. Sed in ante.
</div>
</div>
</body>
</html>
Valikon tyylimäärittelyt jatkuvat alempana, mutta kannattaa tehdä asiat järjestyksessä ettet mene sekaisin. - CSS-määritelmiä on paljon. Pystyisin selittämään kaikki, mutta se veisi liikaa aikaa ja silloin tämä opas paisuisi älyttömän pitkäksi. Siksi pyydänkin sinua käyttämään näitä CSS-ominaisuuslistoja samalla kun teet: CSS Properties | HTML Dog (loistava), All CSS Properties Listed Alphapetically (ihan hyvä), Cascading Style Sheet Properties (hyvä), W3: Full property table (w3:n oma klassinen lista, ihan hyvä), W3Schools Online (loistava).
Tyylitiedosto tehdään samalla tavalla kuin html-tiedosto, eli uusi tiedosto (mikä tahansa). Nimeä tiedosto: tyyli.css. Avaa tyyli.css tekstieditorilla. Yleensä ensimmäisenä luodaan tyylimääritelmät <body>-tagille, eli käytännössä koko sivulle:body {Ylläolevat pienet tyylimäärittelyt muuttavat jo paljon sivun ulkonäköä. Voit seurata sivun kehitystä päivittämällä sitä (tai HTMLKitissä esikatseluikkunasta katselemalla).
font-family:geneva, verdana, tahoma, georgia, arial;
font-size:small;
color:#00800A;
line-height:18px;
background:#222222;
width:600px;
margin:30px auto;
}
font-family (nimensä mukaisesti) määrittää fonttityypin. Ensimmäinen fontti on ensisijainen fontti, jos sitä ei löydy, seuraava fontti tulee voimaan, jos sitäkään ei löydy, siitä seuraava ja niin edelleen. Jos mitään määritettyjä fontteja ei löydy, järjestelmän oletusfontti tulee voimaan (windowsissa yleensä Times New Roman). Yleisiä toimivia fontteja ovat ainakin arial, times new roman, sans-serif, serif, courier new, times, times new roman, georgia, monospace, verdana
font-size (nimensä mukaisesti) määrittää fontin koon. Kokomuuttujia ovat pikselit (esim. 17px), em-yksiköt (1em = noin 16px, esim. 1.2em) ja xx-small (pienin), x-small (pienempi), small (pieni), normal (tavallinen), large (suuri), x-large (suurempi), xx-large (suurin).
color määrittää värin. Väri muodostetaan HEX-arvoista tai yleisistä väreistä kirjoitettuna (black, blue, yellow, red...). Väriarvot menevät RGB kaavan mukaan; #FF0000 on kirkkaan punainen, #00FF00 on kirkkaan vihreä, #0000FF on kirkkaan sininen. Näitä sekoittamalla saadaan muita värejä (esim. #FFFF00 on keltainen). Kirkkain arvo on F ja mitä pienin numero, sitä tummempi väri (esim. #FFFFFF on valkoinen, #666666 on vaalea harmaa, #999999 vaaleampi harmaa). Netissä on paljon hyviä värikarttoja, kuten HC-Codes-värikartat.
line-height on (taas nimensä mukaisesti) rivin korkeus eli riviväli. Teksti erottuu paremmin jos riviväli on tarpeeksi iso. Sopiva on yleensä jo 17 pikseliä (17px), mutta esim. blogeissa suositaan isompaa riviväliä.
background on tausta. Taustavärin voi myös määritellä background-color määritelmällä, mutta säästää aikaa kun kirjoittaa pelkän backgroundin, sillä se kattaa myös värit. Jos haluaa taustakuvan JA -värin sivuillensa, voi käyttää kahta eri merkkaamistapaa. Nopeampi tapa ei ole niin selkeä hahmottaa, mutta toimii.
Esimerkkejä:background:url(http://sivusi-osoite.net/tausta.jpg) #222222 right no-repeat;Sama järjestelmällisemmin:background-color:#222222;
background-image:url(http://sivu.fi/tausta.jpg);
background-position:right;
background-repeat:no-repeat;
width määrittelee leveyden, kun taas height sen korkeuden. Jos halutaan kohde venymään, kiinteää kokoa ei määritellä vaan se jätetään määrittelemättä.
margin määrittää marginaalin, ylimääräisen tilan kohteen reunoilla. Margin on tärkeä monimutkaisempien ja rakenteellisempien ulkoasujen tekemisessä. Tässä ulkoasussa 30px auto 30px on vertikaalinen marginaali ja auto on horisontaalinen marginaali. Kuten mitä tahansa muuta css-tagia margintakin voidaan käyttää kahdella eri tavalla, esimerkki:margin:10px 12px 24px 8px;Ylläolevan esimerkin peräkkäiset numerot menevät myötäpäivään ylhäältä aloittaen: margin:top right bottom left, kun taas tässä esimerkissä näin:margin-top:10px;
margin-right:12px;
margin-bottom:24px;
margin-left:8px;
*
Jatketaanpa. Oletuslinkit ovat häiritsevän sinisiä. Muutetaanpa niitä hieman paremmannäköisiksi:a, a:link {a on mikä tahansa linkki, oli se sitten linkitetty kuva tai jokin muu elementti. a:link on tavallinen linkki. a:visited on vierailtu linkki. a:hover on linkki, jonka päällä on hiiri. a:active on linkki jota klikataan juuri. Tässä esimerkissä käytämme samanlaista efektiä, jota käytän tällä sivulla (vierailtu linkki: text-decoration:line-through). Muita CSS-muuttujia ovat ainakin underline (alleviivaus), none (ei mitään).
color:#777777;
text-decoration:none;
font-style:none;
}
a:visited {
text-decoration:line-through;
color:#666666;
}
a:hover, a:active {
color:#999999;
text-decoration:none;
}
Nyt sivu on saanut kokonaan uudenlaisen ilmeen!
Tässä kohtaa luomme hieman unohtuneen valikon loppuun:ul.valikko {background laitettiin valikkoon hieman vaaleammaksi, jotta se näyttää erottuvan sivun taustasta. margin ja padding ovat 0, koska ei nyt haluta mitään ylimääräisiä välejä (ellet itse halua kokeilla). Jos joku on 0, se ei tarvitse välttämättä yksikköä (esim. px) peräänsä.
background:#121212;
margin:0;
padding:5px;
font-size:18px;
}
ul.valikko li {
display:inline;
list-style-type:none;
list-style:none;
padding:0 0 0 10px;
}
ul.valikko li:after {
content:" /";
}
display:inline pakottaa listan vaakatasoon. Näin saadaan standardinmukainen horisontaalinen lista. list-style-type:none ja list-style:none poistavat luettelomerkit. padding:0 0 0 10px laittaa kymmenen pikselin välin jokaisen listan elementin oikealle puolelle.
:after ja :before määritelmät ovat niinsanottuja pseudo-elementtejä, joita käytetään hienosäätöön silloin kun ei haluta koskea html-sisältöön. Siispä ul.valikko li:after määrittelyissä content:" /" luo jokaisen listaelementin jälkeen kauttaviivan kahdella välilyönnillä. Näin saadaan mukavannäköinen valikko.
Ja sivuhan näyttää tässä vaiheessa tältä. - Sivu näyttää jo nyt aika perushyvältä. Vielä tarvitaan pari välttämätöntä elementtiä, jotta sivu täyttäisi perus grafiikattoman sivun edellytykset. Eli luodaan yksinkertaiset tyylimääritelmät lootalle ja boksille:
div.loota {Voilá! Katso mitä olet saanut aikaan.
background:#333333;
}
div.boksi {
padding:10px;
}
Headeria, eli sivun yläosaa emme luoneet, mutta tämä olikin vain grafiikaton esimerkki. Yksinkertaisen footerin saat lisäämällä <div>in sivun loppuun ennen sivun viimeisiä lopetustageja:<div class="footer">...ja tyylit:
© Matti Meikäläinen 2007
</div>.footer {Laitetaanpa samalla hienosäädöt otsikoille:
color:#444444;
font-size:11px;
padding:3px 0 0 15px;
}h1 {Täydellinen lopputulos!
font-family:georgia, times;
font-weight:lighter;
color:#6EB886;
font-size:30px;
text-transform:lowercase;
} - Usein sivut pitäisi saada nettiin. Netissä on monia hyviä hosting-paikkoja, joista yksi on http://freehostia.com. Mene sivuille ja klikkaa vasemmassa laidassa olevaa "Free Hosting"-linkkiä, rullaa alas, paina "Sign Up Now >>" ja täytä kaikki kentät (paitsi optional). Tämän jälkeen lue Terms and Conditions ja paina "Place the Order". Huom! Freehostian lomake ei hyväksy ä tai ö -kirjaimia, joten Jyväskylä on kirjoitettava a-kirjaimilla: "Jyvaskyla". Lomakkeessa on pakollinen "State"-kohta, laita siihen "Alabama" ja Zip-numberiin Alabaman numero "35291". Freehostia tarjoaa ilmaiseksi 250 MB levytilaa ja 5 GB trafiikkia. Saat pian sähköpostia freehostialta, jossa on tarvittavat tiedot sivujen nettiin saamiseksi (jos et halua freehostiaa, voit etsiä lisää Googlesta tai vaikkapa tältä sivulta).
Sivut siirretään nettiin FTP:n avulla. Hyviä FTP-ohjelmia ovat mm. FileZilla (paras), CoreFTP (hyvä), SmartFTP (hyvä), WS_FTP (vanha, mutta toimiva). Voit ladata ohjelmat ilmaiseksi heidän sivuiltaan. Itse suosittelen FileZillaa.
Kun laitat sivuja nettiin, sinun täytyy tietää
1. Isäntäpalvelin (filezillassa "Address" / "Host" -kohta) mihin yhdistät (esim. esimerkkisivu.freehostia.com) ja portti (usein 21)
2. Salasana ja käyttäjä
Kun olet saanut tiedot sähköpostiin, olet vapaa siirtämään tiedostoja sivuillesi. Laitat vain oikeat tiedot FTP-ohjelmasi lomakkeisiin ja yhdistät.