You are on page 1of 43

ANIMACIJA U INENJERSTVU

Fakultet Tehnikih Nauka


Novi Sad

Igor Kekeljevi

UVOD U VEB DIZAJN


HTML, CSS, JavaScript, JQuery, Bootstrap, Less

2016.
HTML 2
TAGOVI 2
ATRIBUTI TAGOVA 3
PRIMER 5

CSS 9
CSS SELEKTORI 10
EKSTERNI CSS 12
PRIMER 14

JAVASCRIPT 20
FUNKCIJE I PROMENJIVE 21
EKSTERNI JAVASCRIPT 23

JQUERY 24
JQUERY SELEKTORI 25
DODATNI SKRIPTOVI 28

BOOTSTRAP 32
12 KOLONA 32
KOMPONENTE 35

LESS 39
VARIJABLE 40
MIKSINI 41
OPERACIJE 41
IMPORTOVANJE 42

1
HTML
HTML je skraenica od HyperText Markup Language. Ovaj programski jezik i njegov naziv su
delo fiziara Tima Bernersa Lija (Tim Berners-Lee), koji je bio zaposlen u CERN laboratoriji. On je
1980. godine napravio prototip sistema za deljenje dokumentacije elektronskim putem, baziran na
tekstualnim linkovima koji vode korisnika ka novim sadrajima, ime je uspostavio paradigmu
hiperteksta. Jedan od primera koje je naveo za upotrebu hiperteksta su enciklopedijski sadraji.

Fajlovi sa HTML kodom oznaavaju se ekstenzijom *.html. U kombinaciji sa CSS


(Cascading Style Sheets) i javaskriptom (JavaScript), HTML predstavlja temeljno trojstvo veb
dizajna. HTML slui za naznaavanje (markup) elemenata na stranici, odnosno definiciju strukture
sadraja na stranici, ta i gde se nalazi na stranici. Za elementarnu funkcionalnost jedne veb
stranice, dovoljno je koristiti samo HTML, ali se bogatije korisniko iskustvo ostvaruje vizuelnim
stilizovanjem sadraja preko CSS-a i naknadnim izmenama sadraja stranice kroz interakciju sa
korisnikom pomou javaskripta.

HTML kod se sastoji od tagova, koji obino obuhvataju odreeni sadraj. Tagovi se
dodatno konfiguriu preko atributa tagova.

TAGOVI

Struktura jednostavnog HTML koda izgleda kao na sledeem primeru:

<html>
<head>
<title>Naslov stranice</title>
</head>
<body>
<h1>Glavni naslov u tekstu</h1>
<p>Sadrzaj paragrafa</p>
</body>
</html>

Rezultat:

2
Elementi stranice definiu se pomou tagova, koji se piu uglastim zagradama:

<nazivTaga>

Poto tagovi obino imaju unutar sebe neki sadraj ili druge tagove, koriste se otvarajui i
zatvarajui tagovi da bi se obuhvatio pripadajui sadraj. Zatvarajui tagovi se po pravilu piu sa
uzlaznom kosom crticom (/) na poetku taga:

<nazivTaga>Sadraj unutar taga</nazivTaga>

Ukoliko na stranicu elimo da dodamo glavni naslov, da bi internet pretraivaima dali


instrukciju da sadraj unutar navedenog taga interpretiraju kao glavni naslov (heading 1), eljeni
sadraj obuhvatamo otvarajuim i zatvarajuim <h1>...</h1> tagovima. Po istom principu sadraj
za paragraf obuhvatamo <p>...</p> tagovima, kao na primeru:

<h1>Glavni naslov u tekstu</h1>


<p>Sadrzaj paragrafa</p>

Pojedini tagovi ne mogu imati sadraj ili druge tagove unutar sebe, pa se ne piu sa
otvarajuim i zatvarajuim tagovima, kao do sada navedeni primeri. Primer ovakvih tagova je
<br>, skraeno od break line, a slui za postavljanje oznake koja prelama tekst u novi red. Ovi
tagovi se po pravilu piu sa uzlaznom kosom crticom (/) na kraju taga:

<br />

ATRIBUTI TAGOVA

Kao to je u prethodnim primerima navedeno, sadraj stranice se definie obuhvatanjem sadraja


otvarajuim i zatvarajuim tagovima. Za svaki od tagova se mogu definisati i dodatne opcije preko
atributa tagova. Na primer, da bi definisali poravnavanje teksta unutar paragrafa po desnoj strani
koristi se atribut align=right, kao u sledeem primeru:

<p align=right>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat. Aliquam ac massa a neque condimentum elementum. Vestibulum ante
ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut non justo at augue
tincidunt lobortis vel at ligula.
</p>

Rezultat:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat. Aliquam ac massa a neque condimentum elementum. Vestibulum ante
ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut non justo at augue
tincidunt lobortis vel at ligula.

3
Iako je kod veine tagova opciono da li e se koristiti atributi, postoje tagovi kod kojih su
atributi neophodni, kao to su tagovi za linkove i za slike. Da bi napravili da tekst Raunarska
grafika bude link do sajta na adresi http://www.racunarska-grafika.com, potrebno je koristiti
<a>...</a> tag sa href atributom:

<a href=http://www.racunarska-grafika.com>Raunarska grafika</a>

Kao to se vidi u prikazanom primeru, atributi se najee piu kao string promenjive:

imeAtributa=vrednost atributa

4
PRIMER

<html>
<head>
<title>Naslov stranice</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>Glavni naslov u tekstu</h1>
<h2>Podnaslov u tekstu</h2>
<p>
<img src="http://www.racunarska-grafika.com/images/IA-background.gif" />
<br />
Obian, neformatiran tekst, <b>deo teksta koji je boldovan</b>, i <i>deo teksta
koji je u italiku.</i>
</p>
<p>
Primer kada unutar teksta postoji <a href="http://www.racunarska-grafika.com">link
do neke druge internet stranice</a>.
</p>
<hr />
<h2>Probna tabela</h2>
<!-- Komentari koji nisu vidljivi na stranici -->
<table border="1" width="100%">
<thead>
<tr>
<th>BROJ INDEKSA</th>
<th width="45%">IME</th>
<th width="45%">PREZIME</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">AI 1/2016</td>
<td>Petar</td>
<td>Petrovi</td>
</tr>
<tr>
<td align="right">AI 2/2016</td>
<td>Jovan</td>
<td>Jovanovi</td>
</tr>
</tbody>
</table>
</body>
</html>

5
Rezultat:

Objanjenje:
<html>...</html> - Da bi internet pretraiva znao da sadraj skripta treba da interpretira
kao HTML kod, kompletan sadraj se obuhvata <html> tagom. Ovaj tag je obavezan
roditeljski tag svake HTML skripte.
<head>...</head> - Ovaj tag nije obavezan, ali se moe koristiti ukoliko elimo da izvrimo
neke instrukcije pre prikazivanja sadraja stranice. Najee se koristi da se uitaju
neophodni CSS stilovi i javaskript skriptovi za pravilno prikazivanje i fukcionisanje
stranice.
<title>...</title> - Naslov internet stranice. Ovaj tag se upisuje unutar head taga. Naslov
internet stranice se prikazuje u vrhu pojedinih internet pretraivaa, na tabovima, koristi se i
u listama rezultata prilikom pretraivanja interneta.

6
Primer primene <title>...</title> taga.

<meta /> - Ovaj tag se upisuje unutar head taga. Ovaj tag nema otvarajue i zatvarajue
tagove. Tag moe imati razne funkcije, u zavisnosti od korienih atributa. Na primeru su
koriena dva atributa: http-equiv="content-type" content="text/html; charset=utf-8", da bi
se prilikom uitavanja stranice koristio UTF-8 set karaktera, koji sadri latinine slovne
karaktere specifine za srpski jezik: ,, , , .
<body>...</body> - Svi sadraji koje elimo da korisnik vidi na stranici: naslovi, paragrafi,
linkovi, slike, se smetaju unutar navedenog taga.
<h1>...</h1> - Header 1. Glavni naslov u tekstu.
<h2>...</h2> - Header 2. Podnaslov u tekstu.
<p>...</p> - Paragraph. Paragraf teksta. Posle paragrafa se obino automatski dodaje jedan
red razmaka. Paragraf podrava atribut za ravnanje teksta po levom, centralnom, desnom
bloku ili po oba bloka (left, right, center, justify)
7
<img /> - Image. Slika na stranici. Ovaj tag nema otvarajue i zatvarajue tagove, ve se
putanja do slike postavlja preko atributa src=putanjaDoSlike.
<b>...</b> - Bold. Boldovanje testa.
<i>...</i> - Italic. Iskoavanje teksta.
<a>...</a> - Anchor (en. vor). Link na stranici. Putanja do novog sadraja koji se otvara
preko linka se definie preko atributa href=putanjaKojuLinkOtvara.
<hr /> - Horizontal Rule. Horizontalna linija.
<!-- > - Komentar. Sve to se nalazi unutar ovog taga internet pretraivai nee koristiti
i prikazivati na stranici. Prilikom razvoja stranice se koristi ovaj tag da se privremeno
iskljue pojedini delovi HTML koda.
<table>...</table> - Ovo je tag koji iscrtava tabelu na stranici. Tabele se sastoje od redova i
elija koje formiraju kolone. Neki od atributa sa kojima se moe konfigurisati tabela su
border="1" i width="100%". Atribut border kontrolie debljinu bordura tabele. Ukoliko se
podesi na vrednost 0, bordura nee biti vidljiva. Atribut width kontrolie irinu tabele. irina
se moe definisati u procentima, kao u primeru, ili u pikselima (broj ekranskih taaka), kada
se pie samo broj.
<thead>...<thead> - Table Header. Zaglavlje tabele.
<tr>...</tr> - Table Row. Red u tabeli.
<th>...</th> - Table Header. elija u zaglavlju tabele. U primeru je korien atribut
width=45%, koji formatira celu kolonu u kojoj je elija na 45% ukupne irine tabele.
<tbody>...</tbody> - Table Body. Sadraj tabele.
<td>...</td> - Table Data. elija u sadraju tabele. U primeru je korien atribut
align=right da bi se alfanumeriki podaci poravnali po desnom bloku unutar elije.

Puna specifikacija podranih tagova i njihovih atributa kod HTML koda nalazi se na stranici HTML
Tutorial, na adresi http://www.w3schools.com/html/.

8
CSS
CSS (Cascading Style Sheets) bi u bukvalnom prevodu znaio abloni za stil rasporeivanja
sadraja na stranici. CSS kod slui za definisanje kako e elementi sadraja internet stranice
izgledati. Svaki internet pretraiva u osnovnim postavkama ima predefinisan stil prikazivanja
HTML koda, u kojem je definisana boja pozadine i izgled slova, stil paragrafa i naslova, tabela i
ostalih elemenata vidljivih korisniku. Ukoliko elimo da uradimo promenu ovih predefinisanih
vizuelnih ablona, koristimo CSS.

Najjednostavniji nain za primenu CSS stila je direktno, preko atributa style u odreenom
HTML tagu. Ukoliko u odreenom paragrafu elimo da istaknemo tekst tako to emo ga obojiti
plavom bojom, moemo promeniti predefinisanu postavku teksta preko parametra color i dodeliti
ovom parametru predefinisanu nijansu plave boje preko identifikatora blue:

<p style="color:blue">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat.
</p>

Rezultat:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat.

9
CSS SELEKTORI

Direktna promena parametara stila, koja je prikazana u prethodnom primeru, je adekvatno reenje u
sluaju da na stranici imamo samo jedan sluaj u kojem elimo da promenimo stil. U sluaju vie
HTML tagova na kojima elimo istu promenu stila, znatno je racionalnije koristiti sistem koji nam
omoguava da stil definiemo samo na jednom mestu, a da primenu stila automatski distribuiramo
na odgovarajue HTML tagove. Ovo se postie preko CSS selektora. Selektori mogu biti nazivi
tagova, identifikatori i klase, kao na primeru:

<html>
<head>
<title>Naslov stranice</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
p
{
color:blue;
}
.myClass
{
font-weight: bold;
}
#myID
{
font-size: 24px;
}
</style>
</head>
<body>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat.
</p>
<p class="myClass">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat.
</p>
<p class="myClass" id="myID">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus, dictum eget orci
non, tristique dictum erat.
</p>
</body>
</html>

10
Objanjenje:
<style type="text/css">...</style> - Definicija CSS stila u okviru HTML sintakse. Praksa
je da se definicija CSS stila unosi u <head>...</head> tag. Na ovaj nain se definicija CSS
stila uita u radnu memoriju pre prikazivanja sadraja stranice, pa sadraj bude formatiran u
odgovarajui stil istog trenutka kako se i prikazuje korisniku.
p{} - Selektor svih paragrafa na stranici
.myClass{} - Selektor svih tagova koji su dodeljeni klasi myClass, preko atributa unutar
taga class=myClass. Klasi moe biti dodato neogranieno puno HTML tagova sa
stranice, koji mogu biti bilo kog tipa.
#myID{} - Selektor elementa koji ima identifikator myID. Identifikator se dodeljuje
odreenom tagu preko atributa id=myID. Ne moe se koristiti isti identifikator za vie
tagova, on je jedinstvena vrednost samo za pojedini HTML tag element na stranici.

11
EKSTERNI CSS

Navedeni primeri su adekvatna preenja ukoliko internet prezentacija ima samo jednu stranicu, to
je retko kada sluaj. U praksi je obino potrebno isti vizuelni stil koristiti na vie stranica. Da bi bilo
mogue definisati CSS stilove na jednom mestu i automatski ih primeniti na vie stranica koristi se
eksterni CSS fajl, koji koristi ekstenziju *.css. Isti rezultat kao u predhodnom primeru sa CSS
selektorima moemo dobiti ako definicije stila izvuemo u eksterni CSS fajl, koji u eljenu HTML
stranicu uitamo preko <link /> taga.

Sadraj fajla myStyle.css:


p
{
color:blue;
}
.myClass
{
font-weight: bold;
}
#myID
{
font-size: 24px;
}

12
Sadraj HTML fajla:
<html>
<head>
<title>Naslov stranice</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="myStyle.css" type="text/css" />
</head>
<body>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus,
dictum eget orci non, tristique dictum erat.
</p>
<p class="myClass">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus,
dictum eget orci non, tristique dictum erat.
</p>
<p class="myClass" id="myID">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus,
dictum eget orci non, tristique dictum erat.
</p>
</body>
</html>

Objanjenje:
<link /> - Tag za uitavanje razliitih eksternih sadraja, koji se moe koristiti i za
uitavanje eksternog CSS stila, pomou sledeih atributa:
rel="stylesheet" - Instrukcija da se eksterni sadraj tretira kao CSS
href="myStyle.css" - Putanja do eksternog CSS fajla
type="text/css" - Definicija koda unutar CSS fajla

13
PRIMER

HTML stranica bez CSS stila:

Ista HTML stranica sa CSS stilom:

14
Korieni CSS stil:
/* simple style reset */
*{
margin:0px;
padding:0px;
}

body
{
padding: 1em;
background-color: #ddd;
font-family: sans-serif;
font-size: 12px;
color: #333;
}

h1
{
padding: 0.5em;
background-color: #a33;
color: #ddd;

-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
}

h2
{
padding-left: 0.5em;
border-style: solid;
border-width: 0 0 0 0.5em;
border-color: #a33;
}

img
{
margin: 0 1em 1em 0;
float: left;
}

hr
{
clear:both;
}

table
{
border-collapse: collapse;

15
border:none;
}

th
{
padding: 0.5em;
background-color:#aaa;
border: none;
font-size:10px;
font-weight: bold;
}

td
{
padding: 1em 0.5em;
border-width:0 0 1px 0;
border-color:#aaa;
font-size:12px;
}

Objanjenje:

/* simple style reset */


Sve to je napisano izmeu /* */ je kod koji e internet pretraiva ignorisati. Moe se koristiti
za komentarisanje koda, ali i iskljuivanje koda prilikom razvoja stranice.

*{
margin:0px;
padding:0px;
}
Ovo je uraeno bi se resetovala predefinisana podeavanja internet pretraivaa to se tie okvira
oko elemenata i unutar elemenata:
padding - Prostor unutar elementa. Kao i sve ostali parametri kod kojih se definie veliina,
tako se i padding moe definisati u:
pikselima (px),
veliini M slova (em), i
procentima u odnosu na ukupnu irinu elementa (%).
margin - Prostor okolo elementa.
; - Kao to se vidi iz primera, sintaksa CSS koda zahteva ; na kraju svake definice stila, da
bi internet pretraiva znao gde se jedna definicija zavrava, a gde nova definicija poinje.

16
body
{
padding: 1em;
background-color: #ddd;
font-family: sans-serif;
font-size: 12px;
color: #333;
}
Tag body je roditeljski tag vidljivom sadraju stranice. U njemu definiemo opte karakteristike
stranice, koji su u ovom primeru:
padding - Prostor unutar stranice je veliina jednog slova M.
background-color - Boja pozadine stranice u heksadecimalnom kodu. Ovaj kod se pie sa #
i estocifrenom ifrom koju ini po 2 oznake za svaki kanal boje u RGB modelu boja -
#RRGGBB. Oznaka predstavlja koliinu boje po kanalu na skali od 0-255, koja se oznaava
oznakama od 0-9 i od A-F. Ukoliko su obe oznake po kanalu boje iste, onda se moe pisati u
skraenoj formi, sa 3 znaka, pa je #ddd ustvari skraeno od #dddddd. Svi savremeni
programi za editovanje slika (Photoshop, GIMP, Krita) imaju kolor miksere koji ispisuju
vrednosti boja u heksadecimalnom zapisu. Osim heksadecimalnog zapisa, za boju se mogu
koristiti i predefinisane boje upisivanjem imena boje. Lista imena i paleta sa bojama moe
se videti na ovom linku: http://www.w3schools.com/colors/colors_names.asp.
font-family - Izbor porodice fontova. Svi internet pretraivai mogu da koriste
predefinisane porodice fontova: serif, sans-serif i monospace. Serifni fontovi imaju
proirenja na kraju slovnih znakova. Sans-serifni su bez proirenja. Monospace imaju sve
karaktere i razmake jednakih irina. Ukoliko stranica ima pristup internetu, mogu se koristiti
fontovi iz Google Fonts baze fontova: https://fonts.google.com/.
font-size - Definicija veliine slova.
color - Definicija boje slova.

h1
{
padding: 0.5em;
background-color: #a33;
color: #ddd;

-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
}
U ovom delu koda definisana je zaobljenost ivica (border-radius) oko glavnog naslova oznaenog
sa h1 tagom. Poto je parametar za zaobljenost ivica razliit u razliitim internet pretraivaima,
unesene su 3 varijante istog parametra da bi se obezbedio isti izgled stranice u to vie pretraivaa.

17
h2
{
padding-left: 0.5em;
border-style: solid;
border-width: 0 0 0 0.5em;
border-color: #a33;
}
Definica stila za podnaslove oznaene tagom h2:
padding-left - Parametar padding moe biti definisan za sve ivice elementa odjednom ili za
pojedinane ivice elementa, po konvenciji koja je zajednika za sve parametre koje oblikuju
ivice elemenata, kao to su i margin ili border. U ovom sluaju se definie samo unutranji
razmak po levoj ivici elementa h2. Po istom principu mogue je koristiti i padding-top,
padding-right ili padding-bottom.
border-style - Bordura moe imati razne stilove: none, hidden, dotted, dashed, solid,
double, groove, ridge, inset, outset, initial, inherit. Puna linija bez dekoracija je stil solid.
border-width - irina bordure. Prikazan je primer kako je jo mogue definisati razliite
dimenzije za razliite ivice elementa. ablon pisanja je u smeru kazaljke sata: top, right,
bottom, left.
border-color - Boja bordure.

img
{
margin: 0 1em 1em 0;
float: left;
}

hr
{
clear:both;
}
Stil za sliku je definisan korienjem img selektora:
float - Ravnanje elementa po nekoj od ivica. Obino se koristi left ili right, u ovom sluaju
je korien float: left. Efekat ovog parametra je da element tei levoj ivici roditeljkog
elementa, dok svi ostali elementi teku du suprotne ivice elementa. Da bi se prekinuo efekat
ovog parametra potrebno je nekom elementu dodeliti clear: both. U ovom primeru je ovaj
parametar dodeljen horizontalnoj liniji na kraju teksta.

18
table
{
border-collapse: collapse;
border:none;
}

th
{
padding: 0.5em;
background-color:#aaa;
border: none;
font-size:10px;
font-weight: bold;
}

td
{
padding: 1em 0.5em;
border-width:0 0 1px 0;
border-color:#aaa;
font-size:12px;
}
Ovo je primer formatiranja tabele i njenog sadraja:
border-collapse: collapse - Trik sa kojim se uklanjaju razmaci izmeu elija tabele.
border: none - Uklanja borduru okolo tabele.

19
JAVASCRIPT
Javaskript se obino koristi za izmenu sadraja stranice nakon njenog uitavanja, omoguavajui
napredniju interakciju korisnika i sadraja.

Najjednostavnija primena je direktan unos javaskripta u HTML elemente, korienjem


nekog okidaa koji e pokrenuti izvrenje javaskripta. Jedan od takvih okidaa je onClick, koji se
moe koristiti u kombinaciji sa <a>...</a> tagom:

<html>
<head>
</head>
<body>
<a href="#" onclick="alert('Hello World!');">Prikai obavetenje Hello World</a>
</body>
</html>

Objanjenje:
href=# - Ukoliko ne elimo da se nakon klika otvara neka odreena stranica, moemo
navesti umesto putanje karakter #.
onclick="alert('Hello World!');" - Atribut onclick slui da se aktivira navedeni javaskript
kod prilikom klika na HTML tag. Javaskript koji se u ovom primeru aktivira je
predefinasana funkcija alert() koja se nalazi u svakom internet pretraivau, koja otvara
dijalog sa tekstom Hello World!. U praksi je mogue dodati onclick atribut i u neki drugi
HTML tag.

20
FUNKCIJE I PROMENJIVE

U sluajevima kada je potrebno isti javaskript primeniti na vie elemenata na stranici,


racionalnije je napisati taj kod na jednom mestu, u obliku funkcije koja e biti pozivana iz
potrebnog elementa. U ovom primeru su dodate funkcije koje menjaju boju pozadine linka kada je
korisnik kursorom iznad linka:

<html>
<head>
<style type="text/css">
a
{
padding:0.2em;
border:1px solid #aaf;
text-decoration: none;
font-family: sans-serif;
}
</style>
<script type="text/javascript">

// Define variables
var colorBlue="#aaf";
var colorWhite="#fff";

// Define functions
function mouseIn(hoverObject){
hoverObject.style.background=colorBlue;
}
function mouseOut(hoverObject){
hoverObject.style.background=colorWhite;
}

</script>
</head>
<body>
<a href="#" onmouseover="mouseIn(this);" onmouseout="mouseOut(this);">Button 1</a>
<a href="#" onmouseover="mouseIn(this);" onmouseout="mouseOut(this);">Button 1</a>
<a href="#" onmouseover="mouseIn(this);" onmouseout="mouseOut(this);">Button 1</a>
</body>
</html>

21
Objanjenje:
<script type="text/javascript">...</script> - HTML tag koji definie da je sadraj unutar
njega javaskript kod. Ako se koriste javaskript funkcije, kao u ovom primeru, obino se
unose u <head>...</head> sekciju da bi se funkcije uitale pre prikazivanja sadraja stranice,
da bi bile dostupne za pozivanje im se stranica prikae.
// - Linija koda se tretira kao komentar. Moe se koristiti i /* */ kao kod CSS-a, da se
zakomentarie vie redova od jednom.
var colorBlue="#aaf"; - Promenjive se deklariu komandom var. Kao to se vidi iz
primera, sintaksa javaskripta zahteva ; na kraju svake komande, da bi internet pretraiva
znao gde se jedna komanda zavrava, a gde nova komanda poinje.
function mouseIn(hoverObject){} - Funkcije u javaskriptu se deklariu komandom
function, iza koje sledi ime funkcije. U zagradama se definiu promenjive koje e funkcija
koristiti. Kod koji se poziva preko funkcije se unosi unutar vitiastih zagrada. U ovom
sluaju funkcija se zove mouseIn i koristi promenjivu za uvanje informacije o HTML
elementu preko kojeg je funkcija aktivirana.
hoverObject.style.background=colorBlue; - Promena CSS parametra za boju pozadine
preko javaskripta. CSS parametrima se pristupa preko style osobina odreenog HTML
elementa. <a href="#" onmouseover="mouseIn(this);"
onmouseout="mouseOut(this);">Button 1</a> - Pozivanje funkcije se u navedenom
primeri aktivira preko atributa onmouseover (kada je kursor iznad elementa) i onmouseout
(kada je kursor van elementa).

22
EKSTERNI JAVASCRIPT

U sluaju da nam ista funkcionalnost treba na vie stranica, najracionalnije je javaskript kod
napisati u eksternom fajlu. Ekterni javaskript fajlovi se obeleavaju ekstenzijom *.js. Ovakav fajl se
uitava na stranice preko <script>...</script> taga primenom atributa src u koji se unosi putanja do
eksternog fajla, kao na sledeem primeru.

Sadraj fajla myJS.js:


var colorBlue="#aaf";
var colorWhite="#fff";
function mouseIn(hoverObject){
hoverObject.style.background=colorBlue;
}
function mouseOut(hoverObject){
hoverObject.style.background=colorWhite;
}

Sadraj HTML fajla:


<html>
<head>
<style type="text/css">
a
{
padding:0.2em;
border:1px solid #aaf;
text-decoration: none;
font-family: sans-serif;
}
</style>
<script src="myJS.js" type="text/javascript"></script>
</head>
<body>
<a href="#" onmouseover="mouseIn(this);" onmouseout="mouseOut(this);">Button 1</a>
<a href="#" onmouseover="mouseIn(this);" onmouseout="mouseOut(this);">Button 1</a>
<a href="#" onmouseover="mouseIn(this);" onmouseout="mouseOut(this);">Button 1</a>
</body>
</html>

23
JQUERY
Jedan od izazova sa kojima se treba izboriti prilikom razvoja internet stranica je ugraivanje
podrke za razne operativne sisteme (Windows, MacOS, Linux, Android), razne internet
pretraivae (Google Chrome, Internet Explorer, Safari, Firefox, Opera), razne veliine ali i gustine
ekrana. Potrebno je obezbediti dosledan izgled i funkcionalnost stranice, u uslovima kada svi
navedeni sistemi i pretraivai u izvesnoj meri drugaije interpretiraju programski kod, podravaju
drugaije tagove i objekte, koriste drugaije parametre tagova i objekata. Primer do koje je mere
standardizacija nedosledno sprovedena je da jedno vreme sajt kompanije Microsoft nije bio podran
da radi na najkorienijoj verziji njihovog pretraivaa Internet Explorer-a. Kada bi programirali u
isto javaskriptu, morali bi da imate za istu funkcionalnost razne zakrpe i vei broj razliitih verzija
koda koje bi uitavali u zavisnosti od operativnog sistema i pretraivaa korisnika. Zato je velika
prednost koristiti JQuery biblioteku, koja nudi frejmovork baziran na javaskriptu, koja automatski
sreuje veinu navedenih problema. Osim toga nudi i izuzetno dobar frejmovork za selektovanje
elemenata stranice, kao i veliki broj korisnih i atraktivnih skriptova koje je lako implementirati i
koristiti na sajtu. Paralelno sa korienjem jQuery biblioteke se i dalje moe koristiti i redovan
javaskript kod.

<html>
<head>

<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
alert( "Hello World" );
});
</script>

</head>
<body>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dolor lectus,
dictum eget orci non, tristique dictum erat. Aliquam ac massa a neque condimentum elementum.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut non
justo at augue tincidunt lobortis vel at ligula.
</body>
</html>

Objanjenje:
<script src="https://code.jquery.com/jquery-1.11.3.js"></script> - Da bi se koristila
jQuery biblioteka potrebno ju je prvo uitati na stranicu, preko standardne instrukcije za
uitavanje javaskriptova. U primeru se ova biblioteka uitava direktno sa sajta jQuery
fondacije, ali je naravno mogue biblioteku preuzeti sa interneta i koristiti iz foldera, kao i
bilo koji javaskript fajl.
$( document ).ready(function() {} - Funkcija koja se izvrava kada je sadraj stranice
uitan do kraja. Poto se jQuery uglavnom koristi za intervencije na sadraju stranice,
neophodno je da se izvrava tek nakon to je stranica uitana, tako da je praksa je da se
jQuery koristi unutar ove funkcije. U navedenom sluaju poziva se alert dijalog sa tekstom
Hello World.

24
JQUERY SELEKTORI

Jedan od aduta jQuery biblioteke je korienje mehanizama za selektovanje elemenata na stranici,


radi oitavanja i menjanja njihovih parametara. U nastavku je prikazan primer na kojem se, kroz
samo jednu liniju javaskripta automatski boji svaki neparni red u tabeli u drugu boju, zahvaljujui
korienju jQuery biblioteke. Zatim je preko id atributa izmenjen izgled odreenog reda u tabeli u
tamniju plavu boju sa krupnijim slovima.

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
$("tbody tr:even").addClass("myHighlite");
$("#selectedRow td").css({
"background-color": "#88f",
"font-size": "1.5em"
});
});
</script>
<style type="text/css">
table
{
border-collapse: collapse;
border:none;
}

th
{
padding: 0.5em;
background-color:#aaa;
border: none;
font-size:10px;
font-weight: bold;

25
}

td
{
padding: 0.5em;
border:none;
font-size:16px;
}
.myHighlite
{
background-color:ddf;
}
</style>

</head>
<body>
<table border="1" width="100%">
<thead>
<tr>
<th>BROJ INDEKSA</th>
<th width="45%">IME</th>
<th width="45%">PREZIME</th>
</tr>
</thead>
<tbody>
<tr>
<td align="right">AI 1/2016</td>
<td>Petar</td>
<td>Petrovi</td>
</tr>
<tr>
<td align="right">AI 2/2016</td>
<td>Jovan</td>
<td>Jovanovi</td>
</tr>
<tr>
<td align="right">AI 3/2016</td>
<td>Zorana</td>
<td>Zoranovi</td>
</tr>
<tr>
<td align="right">AI 4/2016</td>
<td>Ivan</td>
<td>Ivanovi</td>
</tr>
<tr id="selectedRow">
<td align="right">AI 5/2016</td>
<td>Marko</td>
<td>Markovi</td>
</tr>

26
</tbody>
</table>
</body>
</html>

Objanjenje:

$("tbody tr:even").addClass("myHighlite");

Znak $() je poziv za jQuery biblioteku, jer instrukcije navedene u nastavku nisu u ovom obliku
podrane od istog javaskripta, ve su iskljuivo podrane kroz jQuery. U zagradama se unosi
kriterijum po kojem jQuery pretrauje stranicu i pravi kolekciju objekata da bi mogao da im
pristupa. U ovom sluaju se unutar HTML taga <tbody>...</tbody> pronalaze svi <tr>...</tr>
tagovi, a zatim se u kolekciji zadravaju samo neparni objekti zbog selektora :even. Predefinisana
funkcija u jQuery biblioteci addClass() slui da se u pojedinani HTML tag umetne atribut style
ukoliko ve ne postoji, a zatim u njega doda CSS klasa myHighlite.

$("#selectedRow td").css({
"background-color": "#88f",
"font-size": "1.5em"
});

Selektor za id atribut se inicira sa tarabom (#) ispred naziva klase. U sluaju da pokuavamo da
selektujemo klasu koristili bi taku (.) ispred naziva klase. Da bi menjali veliinu fonta, bilo je
potrebno selektovati ne odreeni red, nego elije unutar reda. Funkcija css je predefinisana u jQuery
biblioteci, a sa njom je mogue oitavata vrednosti odreenog CSS parametra ili menjati njihove
vrednosti, kao to je uraeno na primeru sa bojom pozadine i veliinom fonta.

27
DODATNI SKRIPTOVI

Snaga jQuery biblioteke je u postojanju velikog broja gotovih skriptova, koji se sa lakoom mogu
implementirati na stranicu. U sledeem primeru su ukombinovana 2 gotova skripta da bi se
omoguilo korienje animiranih sprajtova na stranici.

Slika koju koristi animirani sprajt je ablon slika koja sadri sve slike iz animacije ravnomerno
rasporeenim u 2 reda:

28
Koriste se 2 dodatna skripta:
jquery.sprite.js - Skript koji je objavio Robbe Clerckx, 2013. godine. Slui da interpretira
atlas sa slikama u 2 reda u animirani sprajt, pomeranjem pozicije pozadinske slike elementa.
Biblioteka je dostupna na: https://github.com/robbeman/jquery_sprites.
jquery.hoverIntent.js - Skript koji je objavio Brian Cherne, 2007. godine. Slui da aktivira
hover na nekom elementu samo kada korisnik uspori miem iznad njega, ime spreava
aktiviranje koda kada korisnik sluajno pree miem preko njega. Ovo i znaajno
optimizuje rad stranice kada postoji vie animiranih sekvenci u neposrednoj blizini. Skript
je dostupan na: http://cherne.net/brian/resources/jquery.hoverIntent.html.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery.sprite.js"></script>
<script type="text/javascript" src="js/jquery.hoverIntent.js"></script>
<script type="text/javascript">
$(function(){
$('.sprite').sprite({
sheetWidth: 1024,
sheetHeight: 256,
frames: 16,
frameRate: 20
});
$('.useHoverIntent').hoverIntent({
over: function(){ $(this).find(".sprite").sprite('playOnce'); },
out: function(){},
selector: 'a'
});
});

</script>
<style>
/*simple style reset*/
*{
margin:0px;
padding:0px;
}
body
{
padding:1em;
}
.sprite{
width:128px;
height:128px;
margin-bottom: 7px;
}
#sp_izvodi{
background:url("sp_izvodi.jpg") top left no-repeat;
}

29
.sprite_playOnce
{
padding:20px;
display: block;
width: 128px;
height: 180px;
text-align: center;
text-decoration: none;
font-size: 14px;
font-family: sans-serif;
color: #14325d;
border:1px solid white;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
}
.sprite_playOnce:hover
{
border:1px solid #aaf;
}
</style>
</head>
<body>
<div class="useHoverIntent">
<a href="#" onclick="" class="sprite_playOnce">
<div id="sp_izvodi" class="sprite">&nbsp;</div>
Izvodi
</a>
</div>
</body>
</html>

Objanjenje:
$('.sprite').sprite({
sheetWidth: 1024,
sheetHeight: 256,
frames: 16,
frameRate: 20
});
Funkcija sprite se izvrava nad svim elementima stranice koji sadre CSS klasu koja je u
navedenom primeru sprite. Ona slui da se konfiguriu parametri za animaciju sprajta na pojedinim
elementima. Ona koristi 4 parametra:
sheetWidth - irina ablona sa slikama koje ine animaciju, u ovom sluaju 1024px.
sheetHeight - Visina ablona sa slikama.
frames - Ukupan broj slika, u ovom primeru 16. Ova funkcija je predviena za atlase kod
kojih slike idu u 2 reda, zato oekuje da ima 8 slika po redu, da jedna slika bude irine
1024/8 = 128px.
frameRate - Broj slika po sekundi animacije.

30
$('.useHoverIntent').hoverIntent({
over: function(){ $(this).find(".sprite").sprite('playOnce'); },
out: function(){},
selector: 'a'
});
Funkcija hoverIntent se izvrava nad svim elementima stranice kojima je dodeljena CSS klasa
useHoverIntent. Element sa navedenom klasom je roditeljski element za elemente nad kojima e se
primeniti ovaj skript. Ona sadri 3 parametra:
over: function(){} - Programski kod koji se izvrava kada je korisnik kursorom iznad
elementa. U ovom primeru se poziva funkcija iz sprite skripta koja pusti animaciju
jedanput preko parametra playOnce, pa se ponovo zaustavi na prvoj slici.
out: function(){} - Izvravanje koda kada korisnik izae iz HTML elementa. U ovom
sluaju se ne koristi.
selector - Na kojem pripadajuem elementu se tano koristi skript. U ovom sluaju na
<a>...</a> tagovima.

31
BOOTSTRAP
Sa pojavom mobilnih tehnologija, pre svega pametnih telefona i tablet raunara, razvoj interfejsa za
internet aplikacije i prezentacije postao je vrlo zahtevan posao. Prvi oigledan problem je u fizikoj
veliini ekrana na kojem se sadraj gleda, jer je sadraj potrebno prilagoditi da se moe gledati i
koristiti i na ekranu desktop raunara i na ekranu koji je toliko mali da staje u dlan. Naroito je
poveanje gustine ekrana kod mobilnih ureaja dovelo da problema kod prikaza interfejsa ije su
mere bazirane na pikselima. Ukoliko je neko dugme visine 40 piksela, ono e dobro izgledati na
monitoru dekstop raunara, ali e biti 4 puta manje na ekranu nekog mobilnog telefona koji ima 4
puta vie ekranskih taaka po inu, bie previe sitno da bi korisnik mogao da klikne na njega.

Bootstrap biblioteku je razvila kompanija Tweeter, da bi reila upravo ove probleme sa


dizajnom interfejsa za mobilne platforme. Ona da nudi veliki broj predefinisanih elemenata
interfejsa i klasa koje se automatski prilagoavaju razliitim ekranima. Ovo je slobodna biblioteka
otvorenog koda (Free and Open Source), koja je prvi put objavljena 2011. godine.

Instalacija biblioteke je vrlo jednostavna. Sa sajta projekta se preuzme arhiva sa fontovima,


CSS definicijama i javaskriptom koje je potrebno dodati u folder u kojem je sajt i uitavati
bootstrap.css i bootstrap.js na stranicama. Jedino je dodatno neophodno preuzeti i uitavati i jQuery
biblioteku jer je Bootstrap pisan u jQuery-ju i zavistan je od ove biblioteke.

12 KOLONA
Stranicu je mogue organizovati na 2 naina, jedan je sa fiksnom irinom strane, a drugi je irenje
sadraja celom irinom internet pretraivaa. Sama stranica je organizovana u 12 kolona u koje se
rasporeuje sadraj stranice i definie koliko kolona sadraj zauzima u zavisnosti od odreenih
veliina ekrana, odnosno kada sadraj zauzima svih 12 kolona i prelazi u sledei red. Biblioteka ima
4 predefinisane veliine ekrana prema kojima se definie ponaanje sadraja stranice:
xs - Extra small, osnovni izgled stranice
sm - Small, kada je veliina ekrana vea od 750 piksela
md - Medium, kada je veliina ekrana vea od 970 piksela
lg - Large, kada je veliina ekrana vea od 1170 piksela

Ove veliine je mogue menjati, mada za sada nema potrebe, jer su optimalno reenje za
savremene ekrane. Rasporeivanje sadraja u kolone se radi u realnom vremenu, ne samo prilikom
uitavanja stranice, ve i ukoliko korisnik iz nekog razloga promeni veliinu interet pretraivaa.

32
U sledeem primeru je prikazano kako se inicira Bootstrap i kako se sadraj ponaa u
zavisnosti od veliine internet pretraivaa:

<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />


<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="css/bootstrap.min.css" rel="stylesheet">

<style type="text/css">
div
{
border:1px solid #ddd;
}
</style>

</head>
<body>

<div class="container">
<div class="row">
<div class="col-sm-3">
<img src="imgs/IA-background.gif" class="img-responsive">
</div>
<div class="col-sm-9">
<h1>Raunarska grafika - Animacija u inenjerstvu</h1>
Studijski program Animacija u inenjerstvu, je interdisciplinaran
izmeu raunarstva i elektrotehnike i matematike. Nakon zavrenih osnovnih akademskih studija
stie se titula Diplomirani inenjer raunarske grafike, a nakon master akademskih studija titula
Master inenjer raunarske grafike.
</div>
</div>

33
</div>

<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>

</body>
</html>

Objanjenje:
<meta name="viewport" content="width=device-width, initial-scale=1"> - Prilikom
otvaranja stranice na mobilnom ureaju da irina stranice odgovora irini ekrana ureaja, a
da se stranica otvori u origininalnoj razmeri, bez smanjivanja ili uveavanja.
<link href="bootstrap.min.css" rel="stylesheet"> - Uitavanje CSS stilova koji su
neophodni za ispravni rad Bootstrapa i koje koriste komponente interfejsa.
<div class="container">...</div> - Osnovni okvir za Bootstrap sadraj. Klasa container
ograniava sadraj stranice na predefinisanu irini. Ukoliko se koristi klasa container-fluid,
sadraj e se iriti na punu irinu internet pretraivaa.
<div class="row">...</div> - Osnovni okvir za red sa kolonama. Klasa row anulira
margine oko kolona u Bootstrap-u i potrebna je da bi sadraj bio ispravno formatiran od
ivice do ivice.
<div class="col-sm-3">...</div>, <div class="col-sm-9">...</div> - Sadraj je formatiran
tako da na irinama pretraivaa koje su sm (small) ili vee bude podeljen na dve kolone,
tako da prva bude irine 3, a druga 9 kolona od moguih 12.

34
KOMPONENTE

Prednost Bootstrap-a je u velikom broju predefinisanih komponenti interfejsa: tipografskih stilova,


ikonica, navigacionih barova, elemenata koristnikih formulara, dugmadi, padajuih lista, itd. Ovi
gotovi elementi omoguavaju da se lako prave internet prezentacije i aplikacije koje su
funkcionalnog i estetski zadovoljavajueg izgleda. U nastavku teksta je dat primer primene
navedenih komponenti:

<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />


<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="css/bootstrap.min.css" rel="stylesheet">

<style type="text/css">
body
{
margin-top:5em;
}
</style>

</head>
<body>

35
<div class="container">

<nav class="navbar navbar-inverse navbar-fixed-top">


<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#"><img src="imgs/no-picture.jpg"
class="img-responsive" style="height:100%; float:left; margin-right:0.3em;"> Korisniki
servis</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#poziv">Predmeti</a></li>
<li><a href="#program">Osoblje</a></li>
<li><a href="#registracija">Registracija</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>

<ol class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Osoblje</a></li>
<li class="active">Marko Markovi</li>
</ol>

<div class="row">
<div class="col-sm-3">
<img src="imgs/no-picture.jpg" class="img-thumbnail
img-responsive" />
</div>
<div class="col-sm-9">

<h1>
Marko Markovi<br />
<small>Asistent</small>
</h1>

<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur
dolor lectus, dictum eget orci non, tristique dictum erat. Aliquam ac massa a neque condimentum
elementum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
Curae; Ut non justo at augue tincidunt lobortis vel at ligula.
</p>

36
<button type="button" class="btn btn-block"><span
class="glyphicon glyphicon-phone-alt" aria-hidden="true"></span> Phone: 063 1111
111</button>
<button type="button" class="btn btn-block"><span
class="glyphicon glyphicon-envelope" aria-hidden="true"></span> E-mail:
marko.markovic@gmail.com</button>
<button type="button" class="btn btn-block"><span
class="glyphicon glyphicon-home" aria-hidden="true"></span> Kancelarija: Kabinet
111</button>

</div>
</div>

</div><!-- <div class="container"> -->

<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>

</body>
</html>

Objanjenje:
<nav class="navbar navbar-inverse navbar-fixed-top">...</nav> - Definie sadraj kao
navigacionu traku. Konfigurisanje elemenata interfejsa se radi preko klasa:
navbar oblikuje osnovni izgled navigacione trake,
navbar-inverse koristi koloristiki negativ, u ovom sluaju boji navigacionu traku u
crnu boju sa svetlim slovima,
navbar-fixed-top fiksira navigacionu traku na gornju ivicu pretraivaa, bez obzira
da li korisnik skroluje stranicu.
<div class="container-fluid">...</div> - iri sadraj na celu irinu stranice.
<div class="navbar-header">...</div> - Skupljena forma navigacione trake.
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#navbar" aria-expanded="false" aria-controls="navbar">...</button> -
Dugme za otvaranje dropliste kad prikaza skupljene forme navigacione trake. Posebno
obratiti panju na data-target atribut jer on mora da sadri identifikator liste sa linkovima u
navigacionoj traci.
<span class="icon-bar"></span> - Formatira span u kratku horizontalnu liniju. Tri ovakve
linije ine ikonicu na dugmetu za otvaranje dropliste.
<a class="navbar-brand" href="#">...</a> - Logo ili labela u navigacionoj traci.
<div id="navbar" class="collapse navbar-collapse">...</div> - Obuhvata listu sa
linkovima u navigacionoj traci. Definie sadraj koji se ne prikazuje kod prikaza skupljene
forme navigacione trake, ve se premeta u skrivenu padajuu listu.
<ol class="breadcrumb">...</ol> - Formatira listu u formu breadcrumb-a, prikaza pozicije
otvorene stranice u odnosu na strukturu sajta.
<img src="imgs/no-picture.jpg" class="img-thumbnail img-responsive" /> - Izgled
slike je stilizovan sa 2 klase:
img-thumbnail - Iscrtava dekorativnu borduru oko slike,
img-responsive - Prilagoava maksimalnu irinu slike roditeljskom elementu.

37
<button type="button" class="btn btn-block">...</button> - U ovom primeru su
korienje 2 klase:
btn - osnovni stil dugmeta,
btn-block - proiruje dugme na irinu roditeljskog elementa.
<span class="glyphicon glyphicon-phone-alt" aria-hidden="true"></span> - Ikonica
telefona u vektorskom formatu, kao slovni karakter, ime se moe lako definisati njena
veliina i boja preko CSS stilova. Biblioteka dostupnih ikonica moe se videti na stranici:
http://getbootstrap.com/components/#glyphicons.

38
LESS
Nedostatak CSS koda je to nema standardno podrane promenjive, funkcije i razne druge alate za
lake programiranje. Take je na primer, neke osnovne boje vizuelnog identiteta na sajtu potrebno
ponavljati na vie mesta u kodu, kao i sve potencijalne varijacije te boje, dok je zahvaljujui Less
kompajleru CSS koda to vrlo lako kontrolisati. Isto je i sa dimenzijama slova, meuslovnog
razmaka, elemenata interfejsa, sve se moe prebaciti na promenjive i lako kontrolisati pomou
Less-a.

Less se koristi iz Command Prompt-a kod operativnog sistema Vindovs, odnosno Terminala
u Linuksu. Da bi mogli da koristimo ovaj kompajler, potrebno ga je prvo instalirati preko npm
programa (Node Package Manager), koji je sastavni deo programskog paketa node.js:
1. Instalirati node.js
2. Otvoriti Command Prompt i izvriti podeavanje parametara, ako je neophodno, kao to je
instalacija proksija:
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
3. Instalirati Less: npm install -g less

Less se koristi iz Command Prompta sa:


lessc styles.less styles.min.css

Prvo adresiramo putanju i ime do izvornog fajla u *.less formatu, a drugo je adresa i naziv izlaznog
fajla u *.css formatu. Jedan od dodatnih parametara koje moemo koristiti je parametar --clean-css
koji kompresuje CSS fajl na najmanju moguu veliinu, uklanjajui sve nepotrebne karaktere, kao
to su razmaci i redovi. Less kompajler je mogue i povezati sa editorima koda, kao to je Sublime
Text.

39
VARIJABLE

Fajl u *.less formatu:


@base: #f938ab;
@images: "../img";

.box {
color: @base;
background: url("@{images}/white-sand.png");
}

Kompajlirani rezultat u *.css formatu:


.box {
color: #f938ab;
background: url("../img/white-sand.png");
}

Less ima slinu sintaksu kao CSS, ali je ona proirena i sa promenjivama, koje se definiu sa
karakterom @ iza koje piemo naziv promenjive. U primeru je kreirana promenjiva base ija je
vrednost #f938ab. Kada pozivamo vrednost promenjive ponovo je potrebno napisati prvo karakter
ispred naziva @ promenjive, dakle @base. Ukoliko umeemo promenjivu u string, potrebno je
koristiti i vitiaste zagrade {}, kao na primeru sa adresom slike za pozadinu.

40
MIKSINI
Fajl u *.less formatu:
.bordered {
border-top: dotted 1px black;
border-bottom: solid 2px black;
}
#menu a {
color: #111;
.bordered;
}

Kompajlirani rezultat u *.css formatu:


.bordered {
border-top: dotted 1px black;
border-bottom: solid 2px black;
}
#menu a {
color: #111;
border-top: dotted 1px black;
border-bottom: solid 2px black;
}

Miksini (mixins) omoguavaju da lako kombinujemo CSS klase, prostim pozivanjem imena klase
na eljeno mesto unutar neke druge klase.

OPERACIJE

Fajl u *.less formatu:


#menu {
width: 5% * 2;
background-color: #112244 + #111;
}

Kompajlirani rezultat u *.css formatu:


#menu {
width: 10;
background-color: #223355;
}

Less podrava sve matematike operacije, sa svim jedinicama mere koje su validne u CSS-u, pa ak
i matematike operacije sa bojama, sa heksadecimalnim vrednostima.

41
IMPORTOVANJE

Fajl u *.less formatu:


@import "typo.less";

Mogue je kombinovati vie Less fajlova u jedan. Tada e biti dostupne i sve promenjive koje
eksterni fajl koristi, kao da smo kompletan sadraj eksternog fajla ubacili na to mesto.

42

You might also like