1 HTML5,CSS

38
Web programiranje Prof. Dr Milena Stanković Dr Ivan Petković Ivica Marković

description

kl

Transcript of 1 HTML5,CSS

Page 1: 1 HTML5,CSS

Web programiranjeProf. Dr Milena StankovićDr Ivan PetkovićIvica Marković

Page 2: 1 HTML5,CSS

Pregled kursa• Cilj je da student na što jednostavniji način stekne praktično

znanje o modernim Web tehnologijama• Kurs nije sveobuhvatan (ne prelazi svaki aspekt Web

tehnologija), ali je zato dovoljan da osposobi studenta da kreira relativno složenu Web aplikaciju

• Kurs se ažurira svake godine, prateći razvoj Web tehnologija• Na sajtu www.cs.elfak.ni.ac.rs/nastava će se nalaziti:• Materijal (predavanja, vežbe, lab. vežbe)• Informacije o ispitima• Primeri aplikacija• Korisni linkovi

Page 3: 1 HTML5,CSS

Polaganje ispita• Pismeni (40 poena):• Dva kolokvijuma ili• Zadatak na računaru

• Usmeni ( 40 poena)• Laboratorijske vežbe (20 poena)

Page 4: 1 HTML5,CSS

Pregled kursa• Klijent tehnologije (izgled Web aplikacije, statički Web sajtovi): • HTML5, • CSS, • DOM, • Javascript• Jquery

• Server tehnologije:• PHP• MySQL baza• Smarty template-i

• AJAX• Rad sa XML-om i JSON-om

Page 5: 1 HTML5,CSS

Laboratorijske vežbe• Cilj: da se na primeru konkretne Web aplikacije

(npr. Sajt za prodaju automobila) pređu sve tehnologije potrebne za kreiranje moderne Web aplikacije

• Šest (6) lab. vežbi:1. Interfejs Web aplikacije (HTML5, CSS), semantičko

obeležavanje elemenata2. Interfejs Web aplikacije – meniji, JS klase,

manipulacija elementima (Javascript, DOM)3. Obrasci i upload, template-i4. Povezivanje sa bazom5. Sesije, identifikacija korisnika6. AJAX

Page 6: 1 HTML5,CSS

Uvod u Web programiranje

Page 7: 1 HTML5,CSS

Osnovni pojmovi• WWW – World Wide Web• Sistem međusobno povezanih hipertekst dokumenata na

Internetu kojima se pristupa preko Web čitača (browsera)• Hipertekst (HyperText) dokument – tekst sa linkovima

(referencama ka ostalim dokumentima)• Internet – “mreža svih mreža”• Svetska, javno dostupna mreža povezanih računarskih mreža koje

prenose podatke korišćenjem IP (Internet Protocol) standarda.

• Web aplikacija – aplikacija kojoj se pristupa preko Web čitača korišćenjem Interneta (ili intranet mreže)

• Web sajt – skup Web strana u okviru nekog domena (npr. u okviru domena www.elfak.ni.ac.rs)

• Web strana – dokument napisan u HTML-u.

Page 8: 1 HTML5,CSS

Internet vs. Web• Internet je mreža računara (hardvera), dok je Web mreža

dokumenata i drugih resursa (multimedija)• Internet je medijum za razne servise kao što su:• e-mail, • file sharing, • VoIP (voice telephony)• Web• Streaming multimedia (muzika, video,...), itd.

Page 9: 1 HTML5,CSS

Web 2.0• Akcenat na kolaboraciji• Wiki (www.wikipedia.org), • Social-networking,…• YouTube, Google Videos (korisnici uploaduju video materijal)• Blog sajtovi (“online dnevnik”, korisnici pišu “blogove”)• Mashup aplikacije (

http://www.programmableweb.com/mashups/directory)

Page 10: 1 HTML5,CSS

HTML5 i CSSOsnovni elementi i semantika Web strana

Page 11: 1 HTML5,CSS

Klijentske tehnologije• HTML – definisanje strukture i sadržaja strane• CSS – definisanje izgleda• Javascript – definisanje ponašanja • Progressive enhancement – posebni fajlovi za svaku od

tehnologija• HTML -> CSS -> JS

Page 12: 1 HTML5,CSS

Osnovi HTML-a• HTML - Hypertext Markup Language• Tekst sa dodatnim karakteristikama: formatiranje, slike,

multimedija i linkovi ka drugim dokumentima. • XHTML – eXtensible Hypertext Markup Language• Izveden iz XML-a i time je sintaksno stroži od HTML-a (maltene

pravilno napisani HTML)• HTML5 –kandidat da zameni HTML4 i xHTML

Page 13: 1 HTML5,CSS

CSS – Cascading Style Sheets• HTML elementi služe da se napravi sadržaj Web strane (u

smislu strukture strane): ovo ovde je naslov, zatim ide podnaslov, pa slika, itd...

• Stilovi definišu kako da se prikažu HTML elementi• Oni definišu kako će naslov izgledati, gde će biti pozicija slike,

kakva će biti slova u tekstu, itd.

Page 14: 1 HTML5,CSS

• HTML se sastoji od: • elemenata, <div> </div>• atributa, <div style=“…”>• komentara i <!-- … -->• znakovnih referenci. &quot predstavlja “

Page 15: 1 HTML5,CSS

Struktura HTML dokumenta• Doctype - Deo za informacije o dokumentu (npr. verzija HTML-

a)• Zaglavlje - informacije o dokumentu• Telo dokumenta – sadržaj, tj. Skup HTML elemenata

Page 16: 1 HTML5,CSS

Pisanje elemenata• Element se sastoji od početnog dela (tag-a, <div>), sadržaja i

završnog dela (</div>). Npr:<div>Novosti</div>

• Neki elementi nemaju sadržaj i krajnji deo, i njima se na kraju početnog dela stavlja /. Npr:<br />

Crta se stavlja u početnom delu kao znak da je to ujedno i kraj elementa

Page 17: 1 HTML5,CSS

<html>

</html>

<!doctype html>

<head> <title>Web strana</title> </head>

<body> <p>Hello world!</p> </body>

Primer HTML dokumenta

Page 18: 1 HTML5,CSS

• Postoji više načina prikaza elemenata, a najvažniji su:• Blokovi (block-level) -počinju novim redom, mogu da sadrže oba

tipa elemenata; npr. P, DIV, TABLE• Neposredni (inline, text-level) – ne počinju novim redom, mogu

da sadrže samo inline elemente; npr. SPAN

Page 19: 1 HTML5,CSS

Primer<html>

<head> <title>Moja prva Web strana</title></head>

<body style="background-color:#acd373"> <p id=“par1” style="background-color:#ff6600;“> Hello<span style="color:white;“>world </span>

</p> <div>Hello again</div></body>

</html>

Paragraf sa identifikatorom “par1”

SPAN inline element; style atribut predstavljaCSS objekat pridružen ovom SPAN elementu

Page 20: 1 HTML5,CSS

Primer 1

Page 21: 1 HTML5,CSS

HTML i CSS• Svaki HTML element ima pridružen CSS objekat i uokviren je

kutijom (box model) čiji je izgled definisan tim CSS objektom.

Page 22: 1 HTML5,CSS

Osnovne kategorije CSS objekta• CSS objekat se sastoji od mnoštva atributa koji se mogu

svrstati u sledeće kategorije:• Border - Izgled okvira • Margin - Udaljenost od drugih elemenata • Padding – Udaljenost od okvira do sadržaja• Font – Izgled slova• Background – Izgled pozadine

Page 23: 1 HTML5,CSS

Deklarisanje stilova• Tri načina za deklarisanje stilova• U style elementu uokviru strane• U style atributu uokviru samog elementa• U eksternom CSS fajlu (preporučeno)

Page 24: 1 HTML5,CSS

Deklaracija u eksternom fajlu<!doctype html><html> <head> <title>Uvod u CSS</title> <link rel=“stylesheet” type=“text/css” href=“main.css”></head><body style="background-color:#acd373"> <p id="par1“>Hello <span style="color:white;">world </span></p> <div>Hello again</div></body>

</html>

#par1 {font-family:tahoma;font-size:20px;border:2px #223300 dashed; /* slozeni atribut */background-color:#3d7f44;

}

main.css

Page 25: 1 HTML5,CSS

Primer 2

Page 26: 1 HTML5,CSS

Kako selektovati elemente u CSS-u?• Postoje više načina za selekciju elemenata:• Selekcijom tipova• Selekcijom klasa• Selekcijom ID-a• Selekcijom HTML atributa • Kombinacijom navedenih pravila

Page 27: 1 HTML5,CSS

Selekcijom tipova• Primer:

h1 {color:red;}

svi h1 elementi će biti crvene boje

• Grupisanje tipova:h1, h2, h3 {color:red;}

svi h1, h2 i h3 elementi će biti crvene boje

Page 28: 1 HTML5,CSS

Selekcijom klasa• Koncept klase. Svaki HTML element može pripadati

jednoj ili više klasa. To se navodi u class atributu:<p class=“special”></p>Navedeni paragraf (<p> element) pripada klasi special<p class=“special highlight”></p>Navedeni paragraf (<p> element) pripada klasama special i highlight

• Sada uokviru style elementa ili eksternog fajla navesti definiciju klase (jednostavno navesti sve atribute) :

.special {color:red;}.special.highlight {color:red;}

• Sintaksa: tačka (.) pa ime klase

Page 29: 1 HTML5,CSS

Selekcijom ID-a

• Selekcijom ID-a :#par1 {color:red;}

Element sa ID-om par1 će biti crvene boje

• Sintaksa: znak # pa ID elementa

• Selekcijom HTML atributa:span[data-attr1=“vrednost”] {…}

Page 30: 1 HTML5,CSS

Selekcijom atributa• *= (sadrži), npr:

[class*=“col-”] => col-1, col-2, left-col• ^= (počinje sa)

[class^=“col-”] => col-1, col-2• $= (završava se sa)

Page 31: 1 HTML5,CSS

Nasleđivanje stilova• Svaki HTML element kaskadno nasleđuje karakteristike CSS

objekta pridruženog roditeljskom HTML elementu.• Analogija sa nasleđivanjem u objektno-orijentisanim jezicima

Page 32: 1 HTML5,CSS

Nasleđivanje stilova - primer<body style="background-color:#acd373"> <p style=“color:red; font-size:20px“>Hello <span style="color:white;“>

world </span></p> <div>Hello again</div></body>

spanpbody

Nasleđivanje

background-color:#acd373background-color:#acd373;color:red; font-size:20px;

background-color:#acd373;color:white; font-size:20px;

Page 33: 1 HTML5,CSS

Prilog 1

Page 34: 1 HTML5,CSS

Pravila pisanja HTML5

• Koristiti samozatvarajuće početne delove elemenata (oni koji imaju / na kraju i kojima ne treba završni deo, npr. <br />) samo za prazne elemente• Sva imena elemenata i atributa se pišu malim slovima• Svi atributi se pišu između apostrofa (') ili navodnika (") • Dodati blanko pre / kod elemenata koji imaju

samozatvarajući početni deo, npr:<br /> umesto <br/> • Uključiti završne delove za elemenate koji mogu imati

sadržaj ali se ostavljaju prazni (npr. "<img></img>", ne "<img />" )

Page 35: 1 HTML5,CSS

Semantički elementi• Header, footer, section, article, aside, nav• Samostalni deo strane ili aplikacije koji može da se distribuira i

koristi.• Primer: forum post, članak časopisa ili novina, jedan blog,

widget.

Page 36: 1 HTML5,CSS

Article, Section ili Div• Da li bi sadržaj mogao saostalno da se prikaže kao RSS unos?

Da => <article>• Da li je se sastoji od međusobno povezanog sadžaja? Da =>

<section>• Ukoliko ne postoji nikakva semantička veza, koristiti <div>

Page 37: 1 HTML5,CSS

Aside• Koristi se za sadržaj koji nije glavni fokus artikla ili strane, ali se

odnosi na artikal• Može biti napisan uokviru artikla• Ne znači da mora da bude lociran bočno od artikla

Page 38: 1 HTML5,CSS

Nav• Predstavlja deo strane koji sadrži linkove ka ostalim stranama

ili delovima na strani (navigacione linkove) • Ne treba svaku grupu linkova ubaciti u <nav>, već samo glavne

navigacione blokove. • Npr, footer sadrži linkove ka copyright-u, uslovima korišćenja

sajta i glavnoj strani. Njima ne treba <nav>, već je dovoljan sam <footer> element