Futura

1. RADIONICA - OSNOVE HTML-a i CSS-a


Uvod u HTML


Što je HTML?

  • HyperText Markup Language(HTML) je skriptni jezik za izradu web stranica.
  • Nastao 1993. godine. Najnovija verzija je 5.0 iz 2014. godine.
  • Da bi se HTML stranica izvela nije ju potrebno prevesti u strojni jezik (engl. compile), već ju pri čitanju prepoznaje i prevodi web preglednik. Najpoznatiji web preglednici danas su Mozilla Firefox, Google Chrome, Internet Explorer, Microsoft Edge, Safari i Opera.

HTML skripte se pišu uz pomoć tagova. Tag je ključna riječ okružena s "<" i ">" strelicama. Npr. tag za odlomak teksta (engl. paragraph) je:

<p>

Tagovi se zatvaraju sa slash-om "/", npr:

</p>

Tag bez slash-a "/" naziva se početni (start) tag, a tag sa slash-om završni (end) tag.

Sadržaj nekog elementa se nalazi između početnog i završnog tag-a:

<p>Dobar dan</p>

Tagove je potrebno zatvarati jer se mogu pisati jedan unutar drugog:

<p><b>Dobar</b> dan</p>

Tag <b> je podebljani tekst (engl. bold). Tako će rezultat gornjeg koda biti: Dobar dan
U ovom slučaju ako ne zatvorimo tag <b> ostatak stranice će biti u podebljanom tekstu.

Neki tagovi se mogu odmah zatvarati. U tom slučaju slash "/" ide na kraj tag-a. Npr. tag za prijelaz u novi red (engl. break line):

<br/>

Prva web stranica

Zadatak 1

Za pisanje HTML koda dovoljan je običan text editor.

Otvorite novu datoteku u nekom text editoru i upišite:

Dobar dan

Spremite datoteku s ekstenzijom .html ili .htm (.html i .htm su standardne ekstenzije HTML datoteka). Pronađite datoteku u vašem računalu i dvokliknite da biste ju pokrenuli. Vaš web preglednik bi se trebao otvoriti i prikazati web stranicu s tekstom: Dobar dan


Korisne opcije u web pregledniku

Web preglednici nam omogućuju da pogledamo izvorni kod stranice. Dovoljno je kliknuti desnom tipkom miša na stranicu i odabrati "View page source". Web preglednik će nam otvoriti novi tab u kojem je prikazan izvorni kod stranice.

Ako otvorimo naš primjer "Dobar dan" preko opcije "View page source", vidjet ćemo da je izvorni kod stranice jednak tekstu "Dobar dan".

Web preglednici nam omogućuju i da istražujemo elemente web stranice. Desnim klikom na neki HTML element i odabirom "Inspect element" u Mozilla Firefox-u ili "Inspect" u Google Chrome-u, otvara se prozor Inspector.

Inspector nam omogućuje pregled koda elementa i prikazuje nam kako je element uređen (koji font je korišten, koje boje, ...)

Ako otvorimo naš primjer "Dobar dan" u Inspector, vidjet ćemo da je web preglednik generirao više koda nego samo naš tekst "Dobar dan".


Struktura stranice

Osnovna struktura HTML dokumenta izgleda ovako:

<!DOCTYPE html>

<html>
  <head>
  </head>
  
  <body>
    <p>Dobar dan</p>
  </body>
</html>
  • <!DOCTYPE html> označava koju verziju HTML-a ćemo koristiti. <!DOCTYPE html> označava HTML 5, trenutno najnoviju verziju.
  • <html> tag označava da se radi o HTML dokumentu i služi kao njegov početak.
  • <head> tag označava zaglavlje dokumenta. U zaglavlju se mogu postaviti naziv stranice, povezati skripte i postaviti informacije o stranici.
  • <body> tag označava tijelo stranice, gdje se nalaze svi njezini elementi.
  • <p> (engl.paragraph) tag označava odlomak na stranici i služi za prikaz teksta. Tekst napisan između <p>TEKST</p> će biti prikazan na stranici.

Zadatak 2

Napišite ponovno prvu web stranicu, ali koristeći HTML strukturu dokumenta.


Tagovi teksta

Neki od HTML tagova su:
<p> (engl. paragraph) odlomak/prikazivanje teksta:

<p>Dobar dan</p>

Rezultat:
Dobar dan


<b> (engl. bold) podebljavanje teksta:

<b>Dobar dan</b>

Rezultat:
Dobar dan


<u> (engl. underline) pocrtavanje teksta:

<u>Dobar dan</u>

Rezultat:
Dobar dan


<i> (engl. italic) za ukošeni tekst:

<i>Dobar dan</i>

Rezultat:
Dobar dan


Ako kombiniramo par tagova možemo dobiti zanimljivi tekst:

<p><b><u>D</u>obar</b> <i>dan</i></p>

Rezultat:
Dobar dan


<h1> (engl. header) h1 je najveći naslov:

<h1>Dobar dan</h1>

Rezultat:

Dobar dan


<h2> (engl. header) h2 je malo manji naslov:

<h2>Dobar dan</h2>

Rezultat:

Dobar dan


... postoje i h3, h4, h5 i h6

<h6> (engl. header) h6 je najmanji naslov:

<h6>Dobar dan</h6>

Rezultat:

Dobar dan

Ako imamo odlomak s više redaka, <p> to neće sam shvatiti već će sve ispisati u isti redak:

<p>
  Dobar dan.
  Kakav lijep dan.
</p>

Rezultat:
Dobar dan. Kakav lijep dan.


U pomoć nam priskače <br/> (engl. line break):

<p>
  Dobar dan.<br/>
  Kakav lijep dan.
</p>

Rezultat:
Dobar dan.
Kakav lijep dan.


Zadatak 3

Napišite vijest o održavanju web predavanja informatičke udruge Futura u HTML-u. Vijest mora sadržavati:

  • Veliki naslov
  • Barem jedan podnaslov
  • Naslov i podnaslovi moraju biti podcrtani
  • Barem jedan odlomak teksta
  • Mora se spomenuti naziv udruge Futura
  • Svaki naziv mora biti podebljanog teksta
  • Vijest mora sadržavati datum događaja
  • Svaki datum ili vrijeme mora biti ukošenog teksta

Komentari

Komentar je dio koda koji web preglednik preskače i on se ne prikazuje. Komentar se piše unutar <!--KOMENTAR-->

<!--ovo je moj komentar-->
<p>Dobar dan</p>

Rezultat:
Dobar dan

Komentar može obuhvaćati i više linija:

<!--
  ovo je moj komentar
  koji ide u više linija
  
  jeeeeee :)
-->
<p>Dobar dan</p>

Rezultat:
Dobar dan


Zaglavlje

Da bi postavili ime stranice, potrebno je upisati <title> tag u <head> elementu.

<title>Naslov ove super stranice</title>

Ako pokušamo upisati hrvatske dijakritičke znakove (š, đ, č, ć, ž) na stranicu, HTML neće biti oduševljen i prikazati će neispravne podatke. Zbog toga moramo web pregledniku reći koji skup znakova da koristi. To radimo tako da unutar <head> tag-a postavimo charset (kodiranje znakova na stranici) na UTF-8.

<meta charset="UTF-8">

U <meta> tag-u možemo definirati i neke infomacije o stranici, poput autora:

<meta name="author" content="Futura">

Ili ključne riječi stranice:

<meta name="keywords" content="futura web programiranje">

U Mozilla Firefox-u moguće je vidjeti meta podatke stranice preko desni klik/View page info.


Liste

Postoje dvije liste u HTML-u, neuređena lista <ul> (engl. unordered list) i uređena <ol> (engl. ordered list). Jedina je razlika što neuređena lista ima redne brojeve ispred članova liste, a uređena ima kružiće. Članovi liste su označeni s <li>.

Neuređena lista:

<ul>
  <li>Prvi član</li>
  <li>Drugi član</li>
  <li>Treći član</li>
</ul>

Rezultat:

  • Prvi član
  • Drugi član
  • Treći član

Uređena lista:

<ol>
  <li>Prvi član</li>
  <li>Drugi član</li>
  <li>Treći član</li>
</ol>

Rezultat:

  1. Prvi član
  2. Drugi član
  3. Treći član

Zadatak 4

Napišite neuređenu listu za kupnju s minimalno deset artikala. U listi navedite barem jedan artikl koji koristi barem jedan hrvatski dijakritički znak (š, đ, č, ć, ž).


Atributi

Neki HTML elementi imaju atribute koji se mogu mijenjati. Atributi dolaze unutar tag-a elementa, uvijek u obliku atribut="vrijednost". Element može imati i više atributa.

Uređenoj listi se može postaviti atribut type da umjesto rednih brojeva budu slova:

<ol type="A">
  <li>Prvi član</li>
  <li>Drugi član</li>
  <li>Treći član</li>
</ol>

Rezultat:

  1. Prvi član
  2. Drugi član
  3. Treći član

Atribut type raspoznaje vrijednosti "A" velika slova, "a" mala slova, "I"(Rimski brojevi), "i"(mali Rimski brojevi) i "1" (brojeve - što je i početna vrijednost).


Tablica

Element tablice započinje se s tag-om <table>. Unutar njega navodi se <tr> (engl. table row), unutar kojeg se navodi ćelija tablice <td> (engl. table data). Potrebno je navoditi <tr> za svaki redak. Postoji i element naslova stupca tablice <th> (engl. table header).

<table border="1">
  <tr>
    <th>Naslov</th>
    <th>Naslov</th>
  </tr>
  <tr>
    <td>Podatak 1</td>
    <td>Podatak 2</td>
  </tr>
  <tr>
    <td>Podatak 3</td>
    <td>Podatak 4</td>
  </tr>
</table>

Rezultat:

Naslov Naslov
Podatak 1 Podatak 2
Podatak 3 Podatak 4

Atribut border označava debljinu crta oko tablice u pikselima. Ako postavite border na 0, neće ih imati.



Slika

Slika se povezuje s pomoću tag-a <img>. Lokacija slike se upisuje unutar src atributa, a unutar alt atributa upisuje se tekst koji će se prikazati ako se slika ne može učitati.

Tag <img> nema tag za zatvaranje, tj. ne postoji </img>. Koristi se u obliku <img src="" alt=""> ili <img src="" alt="" />

Primjer za prikaz loga Future:

<img src="futura.jpg" alt="" />

Rezultat:

Futura logo

Kao kod poveznice, ovisno o lokaciji slike potrebno je upisati samo ime slike, podfolder ili lokaciju slike na web-u.


Zadatak 5

Uredite vijest iz zadatka 3 tako što dodate naslovnu sliku i još jednu sliku negdje u tekstu. Svaka slika mora biti poveznica na stranicu udruge "http://www.futura.com.hr/". Također, naziv udruge Futura mora biti poveznica na stranicu udruge.




Uvod u CSS


Što je CSS?

  • Cascading Style Sheets je stilski jezik koji se rabi za uljepšavanje HTML dokumenta
  • Određuje kako elementi HTML-a moraju biti prikazani na ekranu
  • Nastao 1996. godine. Najnovija verzija je CSS3

Prilikom dodavanja stila nekom HTML elementu potrebno je dodijeliti mu neko svojstvo sa određenom vrijednošću:

element {
  svojstvo: vrijednost;
}

Gore je naveden način koji ćete, jednom kad prođete osnove, najviše i koristiti. Do tada, bazirat ćemo se na "inline" zapis CSS-a:

<element style="svojstvo: vrijednost;">

Visina i širina

Dva bitna, možda čak i najbitnija svojstva nekog elementa su visina i širina. Postoji nekoliko mjernih jedinica za određivanje dimenzija elementa kao što su px, %, em, pt, mm. U ovom slučaju, bazirat ćemo se samo na prve dvije spomenute.

Kako bi nekom elementu dodali visinu koristit ćemo svojstvo height i vrijednost sa mjernom jedinicom "px"" (pixel). Za primjer ćemo uzeti sliku koju smo spomenuli u HTML sekciji "Slika".

<img src="futura.jpg" alt="futura" style="height:100px;"/>

Rezultat:

futura

Kako bi nekom elementu dodali širinu koristit ćemo svojstvo width sa mjernom jedinicom "%" (postotak).

<img src="futura.jpg" alt="futura" style="width:100%;"/>

Rezultat:

futura

Ukoliko želimo dodati više svojstava za isti element, jednostavno ih redamo nakon znaka ";" (točka-zarez) prvog svojstva, npr:

<img src="futura.jpg" alt="futura" style="width:100%; height:100px"/>

Rezultat:

futura

Zadatak 6

Uredite slike iz zadatka 5 tako što dodate širinu 100% za naslovnu sliku, a širinu 600px i visinu 200px za drugu sliku.


Boje

Osim dimenzija elemenata, ljudi brzo uočavaju i boje, pa tako će prvo uočiti pozadinsku boju, boju slova, boju okvira itd. Postoji više načina za obojati neki element pomoću CSS-a:

  • Običnim tekstom (npr. red, green, blue)
  • Heksadecimalnim zapisom (npr. #ff0000, #00ff00, #0000ff)
  • RGB (npr. rgb(255,0,0), rgb(0,255,0), rgb(0,0,255)
  • RGBA (npr. rgb(255,0,0,1), rgb(0,255,0,0.5), rgb(0,0,255,0)

Prva tri prikazana načina sa prijerima u zagradama će dati isti rezultat, dok će posljednji dodati transparentnost. Preporučuje se korištenje srednja dva načina jer ga svi web preglednici podržavaju i jer ima puno veći spektar boja od prvoga. Postoje mnogi alati za pretvorbu i odabir nijansi boja, a jedan od njih je i na W3Schools.com

Kako bi obojali neki tekst u crvenu boju potrebno je dodati svojstvo "color" tom elementu i dati mu vrijednost na jedan od gore navedenih načina:

<p style="color:red;">Obojaj me u crveno!</p>

<p style="color:#ff0000;">Obojaj me u crveno!</p>

<p style="color:rgb(255,0,0);">Obojaj me u crveno!</p>

Rezultat:

Obojaj me u crveno!


Osim boje teksta, možemo mijenjati i pozadinsku boju nekog elementa svojstvom "background-color":

<canvas style="width:100%; height:50px; background-color:#0000ff;"/></canvas>

Rezultat:



Zadatak 7

Dodajte proizvoljnu pozadinsku boju vašem tijelu dokumenta HEX zapisom, te dodajte boju vašem paragrafu RGB zapisom. (Hint: koristite se W3C alatom za pronalazak boja)


Tipografija

Kako bi vaše stranice uvijek bile čitljive (što im je i svrha?), posebnu pažnju treba obratiti i na tipografiju, odnosno koje fontove koristite, koju veličinu slova, proreda itd. Postoje 3 grupe fontova:

  • Serif
  • Sans-serif
  • Monospace

Razlika između Serif i Sans-serif grupe je u rubovima slova, pa tako svi fontovi iz Serif grupe imaju oštre, odnosno produžene krajeve slova, a fontovi iz Sans-serif ne. Monospace grupa je grupa fontova koji imaju jednak razmak između svakog pojedinog slova.

fonts

Čitanje Sans-serif fontova je za većinu ljudi ugodnije, no to ne znači da Serif i Monospace fontove nije poželjno koristiti. Najpoznatiji Serif font je "Times New Roman", a Sans-serif "Arial".


Font

Za sad su spomenuta samo 4 svojstva, a CSS ih nudi pregršt. Kako smo prethodno spominjali tipografiju, vrijedno je spomenuti svojstva koja se tiču fontova i teksta.

Kako bi nekom elementu, ili čak cijelom html dokumentu rekli da koristi određenu grupu fontova, koristi se "family-font" svojstvo koje kao vrijednost može imati jedan ili više naziva fontova:

font-family: "Times New Roman", Times, serif;

Ako web preglednik ne prepozna font koji je prvi naveden, provjerit će je li podržava drugi itd. Uvijek je poželjno nanizati više fontova ukoliko se koriste ne standardni fontovi. Primjer teksta sa različitim fontovima:

<p style="font-family: Georgia, serif;">Ovo je tekst sa Serif fontom!</p>
<p style="font-family: Arial, Helvetica, sans-serif;">Ovo je tekst sa Sans-serif fontom!</p>
<p style="font-family: 'Courier New', Courier, monospace;">Ovo je tekst sa Monospace fontom!</p>

Rezultat:

Ovo je tekst sa Serif fontom!

Ovo je tekst sa Sans-serif fontom!

Ovo je tekst sa Monospace fontom!


Svojstvom "font-size" možemo mijenjati veličinu slova, npr.:

font-size: 24px;
<p style="font-size: 24px;">Ovo je veliki tekst!</p>
<p style="font-size: 10px;">Ovo je mali tekst!</p>

Rezultat:

Ovo je veliki tekst!

Ovo je mali tekst!


Svojstvom "font-style" možemo npr. nakositi tekst umjesto HTML tagom:

font-style: italic;
<p style="font-style: italic;">Ovo je nakošeni tekst!</p>

Rezultat:

Ovo je nakošeni tekst!


"font-weight" je svojstvo kojim možemo podebljavat ili stanjivat slova. Vrijednost je izražena brojevima bez mjerne jedinice ili riječima "bold", "normal", "lighter".

font-weight: 800;
<p style="font-weight: 300;">Ovo je normalni tekst!</p>
<p style="font-weight: bold;">Ovo je debeli tekst!</p>

Rezultat:

Ovo je normalni tekst!

Ovo je debeli tekst!


Ukoliko ne želimo pisati sva svojstva odvojeno, sve vrijednosti se mogu strpati pod svojstvo "font", s tim da se mora poštivati redoslijed "font-style font-variant font-weight font-size/line-height font-family". Ukoliko neku vrijednost ne želite zadati, jednostavno je preskočite npr.:

font: bold 18px Georgia, serif;
<p style="font: 18px Georgia, serif;">Ovo je neki tekst!</p>
<p style="font: italic bold 18px/30px Arial, serif;">Ovo je neki tekst!</p>

Rezultat:

Ovo je neki tekst!

Ovo je neki tekst!


Zadatak 8

Uredite tekstove na sljedeći način:

  • Cijelom tijelu dokumenta dodajte Sans-serif grupu fontova
  • Velikom naslovu dodajte Monospace grupu fontova
  • Nakosite prvi podnaslov CSS načinom
  • Paragrafu podebljajte slova brojkom
  • Povećajte slova paragrafu gdje se spominje ime Futura

Text

Jedno od korištenijih svojstava je također "text-align", a služi za poravnanje teksta lijevo (left), sredinu (center), desno (right) ili obje strane (justify):

text-align: left;
<p style="text-align: left;">Ovo je tekst poravnat lijevo!</p>
<p style="text-align: center;">Ovo je centrirani tekst!</p>
<p style="text-align: right;">Ovo je tekst poravnat desno!</p>

Rezultat:

Ovo je tekst poravnat lijevo!

Ovo je centrirani tekst!

Ovo je tekst poravnat desno!


"text-decoration" služi za dekoriranje teksta kao što je podcrtavanje (underline) i precrtavanje (line-through), a vrlo često se koristi kako bi se izbrisala predodređena dekoracija linkova, npr:

text-decoration: none;
<p style="text-decoration: underline;">Ovo je podcrtani tekst!</p>
<p style="text-decoration: overline;">Ovo je tekst sa gornjom crtom!</p>
<a href="#" style="text-decoration: none;">Ovo je link bez stila!</a>

Rezultat:

Ovo je podcrtani tekst!

Ovo je tekst sa gornjom crtom!

Ovo je link bez stila!

Nabrojana svojstva su samo neka od mnogobrojnih koje CSS podržava, a još nekih bitnih ćemo se dotaknuti na sljedećoj radionici.


Zadatak 9

Na dnu vaše stranice napravite novi paragraf sa vašim imenom i prezimenom, poravnajte ga desno i podcrtajte ga.

HTML5 and CSS3