Documente Academic
Documente Profesional
Documente Cultură
004.738.52
004.43 HTML
004.43 CSS
004.43 JAVASCRIPT
004.272.23
Prefa 9
Partea I
HTML
1. Spaiul World Wide Web...................................................................................... 13
1.1. Introducere n realizarea unui site ................................................................. 15
1.2. Protocoale i adrese URL .............................................................................. 16
1.3. Crearea unui site gratuit ................................................................................ 17
1.4. Crearea paginilor Web .................................................................................. 18
3. Stiluri de text.......................................................................................................... 29
3.1. Stiluri fizice de text ....................................................................................... 29
3.2. Stiluri logice de text ...................................................................................... 32
3.3. Fonturi ........................................................................................................... 36
4. Liste ....................................................................................................................... 39
4.1. Liste ordonate (Ordered Lists) ...................................................................... 39
4.2. Liste neordonate (Unordered Lists) .............................................................. 41
4.2.1. Atributele elementului LI .................................................................... 44
4.3. Liste de definiii (Definition Lists) ................................................................ 45
5. Tabele ..................................................................................................................... 47
5.1. Generaliti .................................................................................................... 47
5.2. Atributele etichetei <TABLE>...................................................................... 48
5.2.1. Elementul TH ...................................................................................... 55
5.2.2. Elementul CAPTION .......................................................................... 55
5.3. Atributele elementului TR............................................................................. 56
5.4. Atributele elementelor TD i TH.................................................................. 58
5.5. Gruparea liniilor i coloanelor unui tabel...................................................... 62
5.5.1. Gruparea liniilor .................................................................................. 62
5.5.2. Gruparea coloanelor ............................................................................ 64
5
6. Imagini.................................................................................................................... 66
6.1. Introducerea imaginilor n paginile Web....................................................... 68
6.2. Atributele Elementului IMG ......................................................................... 68
7. Legturi (Link-uri)................................................................................................ 75
7.1. Elementul A.................................................................................................. 75
7.2. Legturi ctre alte pagini Web ...................................................................... 77
7.3. Legturi cu imagini ....................................................................................... 78
7.4. Legturi cu adrese URL relative ................................................................... 80
7.5. Legturi ctre informaii non Web ............................................................... 82
7.6. Legturi ctre fiiere non HTML ................................................................. 83
7.7. Legturi interne n cadrul unei pagini ........................................................... 84
7.8. Trimiterea automat a unui e-mail................................................................. 88
7.9. Culorile legturilor ........................................................................................ 89
6
Partea a II-a
CSS
13. CSS-Cascading Style Sheets (Foi de stil n cascad) ........................................ 157
13.1. Introducere n modelele de stiluri................................................................ 157
13.2. Stiluri interne (in-line)................................................................................. 157
13.3. Foi de stil n pagin ..................................................................................... 159
13.4. Foi de stil externe ........................................................................................ 162
13.5. Stiluri n cascad ......................................................................................... 163
13.6. Stiluri pentru diferii selectori ..................................................................... 165
13.6.1. Selectorul ID .................................................................................... 165
13.6.2. Selectorul CLASS ............................................................................. 166
13.6.3. Pseudo-clase...................................................................................... 168
13.6.4. Pseudo-element ................................................................................ 170
13.7. Elementele DIV i SPAM ........................................................................... 171
Partea III
JavaScript
Anexe
ANEXA A Culori.................................................................................................... 317
ANEXA B Caractere n HTML............................................................................... 321
ANEXA C CSS Specificaii de stil......................................................................... 325
Bibliografie selectiv................................................................................................... 331
8
Prefa
10
PARTEA I
HTML
11
12
1. Spaiul World Wide Web
17
se va solicita clientului s completeze un formular cu numele dorit al site-
ului, adresa de e-mail (una din cele pe care le avei), o parol etc. Dac datele au fost
completate corect se poate obine un site la adresa
www.nume.freewebsites.com
www.nume.b0x.com
La adresa de e-mail specificat n formular se va primi un mesaj prin care se
cere s confirmm nscrierea, scriind parola dat i numele de utilizator (USER ID) i
un cod care a fost dat dup completarea formularului.
S presupunem c n urma acestei cereri s-a obinut un site gratuit:
adresa: www.testweb.freewebsites.com
parola: pagweb
User ID: ana
18
un dublu click pe fiier are ca efect lansarea browser-ului, care va afia
fiierul (coninutul va fi vid)
din menu-ul principal din Internet Explorer, View->Source, NOTEPAD
va ncrca codul HTML al fiierului (coninutul va fi vid)
scriem un text la alegere, de exemplu se creeaz un site, se salveaz
fiierul
n fereastra browser-ului se apas butonul Refresh, prin care comandm
browser-ului s rencarce fiierul care a suferit modificri
se trece iar n NOTEPAD (View-Source) pentru a continua s scriem
fiierul HTML
OBSERVAIE!
Pentru a scrie codul unui fiier HTML, nu trebuie s fim conectai la
Internet.
Un fiier HTML poate conine comentarii pentru a-l face mai uor de
parcurs. Comentariile pot aprea oriunde n fiier i nu vor fi afiate de browser.
Sintaxa comentariilor n HTML este:
19
2. HTML noiuni de baz
20
Figura 2. 1. Fiierul cerere.html, fr marcaje
21
2.2. Titluri pentru pagini web
Pentru ca o pagina web s arate mai relevant se poate da un titlu adecvat, cu
ajutorul etichetei pereche: <TITLE> coninut </TITLE>. Titlul apare pe bara de titlu
a browser-ului utilizat. Blocul de titlu apare n interiorul blocului de antet
<HEAD> </HEAD>.
Coninutul blocului de titlu va fi titlul paginii web respective i deci folosirea
lui va fi de folos pentru vizitatorii site-ului.
Introducnd n exemplul de mai sus un titlu, Internet Explorer va afia:
<HTML>
<HEAD>
<TITLE> PRIMA PAGINA </TITLE>
</HEAD>
<BODY>
EXEMPLUL DE CREARE A UNEI PAGINI WEB
</BODY>
</HTML>
22
Blocul interior corp program poate conine text i /sau imagini i este
cuprins ntre controalele <BODY></BODY> .
ntre parantezele unghiulare <> sau </> i cuvintele cheie din interiorul lor
nu este permis spaiul (< HEAD > incorect).
HTML nu face distincie ntre majuscule i liter mic cu care se scriu etichetele.
<P> 05-01-2007
<P align=right> Ana Ionescu
23
Figura 2. 4. Tag-ul <P>
24
Subsemnata Ionescu Ana va rog sa-mi eliberati o adeverinta, din care sa
reiasa ca sunt studenta a facultii de Matematica-Informatica din
Universitatea Bucuresti. <BR>
Menionez ca aceasta adeverinta imi este necesara la R.A.T.B.<BR>
05-01-2007
<P align=right> Ana Ionescu
</BODY>
</HTML>
26
Se observ din figura de mai sus fontul monospaiat folosit de PRE, n
comparaie cu fontul normal folosit de <P> (la scrierea titlului)
Etichetele <NOBR> i <WBR>
Etichetele <NOBR> i <WBR> se folosesc la aranjarea textului i sunt
asemntoare cu tag-ul <BR>, de salt la linie nou.
Eticheta <NOBR>
Dac se dorete ca un text s fie scris pe un singur rnd, indiferent de
dimensiunea ferestrei, acesta se introduce n blocul <NOBR></NOBR> (nobreak). La
ntlnirea acestei etichete browser-ul dezactiveaz modul automat de trecere pe linia
urmtoare. Dac textul este mai mare dect fereastra, n cazul folosirii tag-ului <NOBR>,
apare o bar de derulare orizontal, care permite vizionarea ntregului rnd.
Eticheta <WBR>
Pentru a introduce o linie nou, chiar dac linia se afl n interiorul lui
NOBR, se folosete eticheta nepereche <WBR> (wrap break).
n exemplul de mai jos se ilustreaz folosirea celor dou etichete.
<HTML> <HEAD> <TITLE> NOBR i WBR </TITLE> </HEAD>
<BODY>
<P> <NOBR>
n aceast carte se prezint limbajele <WBR> HTML (HyperText Markup
Language), XHTML (Extensible HyperText Markup Language), CSS
(Cascade Style Sheets), JAVASCIPT </NOBR> </P>
</BODY> </HTML>
27
2.5. Linii orizontale
Pentru o mai bun organizare vizual a unui document, se folosete eticheta
de rigl orizontal, <HR atribute>. Aceast etichet poate fi plasat oriunde n
document i are ca efect producerea unei linii orizontale pe toat limea paginii,
dac nu exist atribute.
Atributele elementului HR sunt:
align alinierea liniei poate avea valorile: left (implicit), right i
center
width lungimea liniei care se poate exprima:
printr-un numr ntreg pozitiv
printr-un procent, care este o fraciune din lungimea paginii i este un
numr urmat de %, valoarea prestabilit fiind de 100%
size reprezint grosimea liniei n pixeli, valoarea implicit fiind 2
nonshade nseamn c linia este neumbrit, n lipsa acestui atribut linia
este de tip 3D i umbrit
color indic culoarea dorit pentru linie. Valoarea implicit este negru
(black)
Un exemplul de utilizare a tag-ului HR este dat de urmtorul cod:
<HTML> <HEAD> <TITLE> Linii orizontale </TITLE> </HEAD>
<BODY> Acesta este o linie fr opiuni
<HR>
Acesta este o linie de lungime 500px, grosime 4px, culoare albast i aliniata
centru
<HR align=center width=500 size=4 color=blue>
Acesta este o linie de lungime 50% din pagin, grosime 3px, culoare roie i
aliniat la dreapta
<HR align=right width=50% color=red size=3 noshade>
</BODY> </HTML>
28
3. Stiluri de text
32
Titluri
Dac pagina conine mai multe seciuni i subseciuni, HTML permite
introducerea a ase tipuri de titluri predefinite H1, H2, H3, H4, H5 i H6.
Fiecare titlu este scris ntre etichetele: <H1> </H1>, <H2> </H2>,
<H3> </H3>, <H4> </H4>, <H5> </H5> ,<H6> </H6>.
Titlul H1 este cel mai nalt i ngroat, iar titlul H6 este cel mai de jos i este
afiat cu cel mai mic i mai subire font.
Toate titlurile:
sunt afiate pe un rnd nou i cu un spaiu dup blocul precedent
accept atributul align = valoare cu valori posibile left (implicit),
right, center i justify.
Un exemplu de utilizare a titlurilor este redat mai jos:
<HTML>
<HEAD> </HEAD>
<BODY>
<H1 align=center> TITLUL H1 (cel mai mare si gros) </H1>
<H2> TITLUL H2 </H2>
<H3 align=right> TITLUL H3 </H3>
<H4 align=justify> TITLUL H4 </H4>
<H5 align=left> TITLUL H5 </H5>
<H6 align=center> TITLUL H6 (cel mai mic si subtire) </H6>
</BODY> </HTML>
Figura 3. 5. Titluri
Stilurile DIV i SPAN
n HTML exist elemente:
de nivel bloc, care sunt afiate la nceput de rnd nou (<P>,<HR> etc.)
inline, care sunt afiate pe acelai rnd (<B>, <I>, <TT>, <FONT> etc.)
Elementul DIV este un element de bloc iar elementul SPAN este un element
inline. Aceste dou elemente nu impun nici un stil pentru text, spre deosebire de un
element ca P (paragraph). De aceea, aceste elemente se folosesc mpreun cu limbajul
CSS, pentru a ataa un stil la un text sau la o poriune dintr-un rnd (n aceast seciune
vor fi exemplificate numai cu atribute independente de CSS).
33
Atributele lui Div i Span:
align=valoare este acceptat numai de elementul DIV, care este un
element de bloc (Span este element inline, deci nu poate avea atributul
align).
title=continut este acceptat de ambele elemente i impune browser-ului
sa afieze coninut atunci cnd mouse-ul se afl pe un element.
n exemplul de mai jos sunt exemplificate stilurile DIV i SPAN.
Se observ c elementul DIV:
nu produce un rnd alb nainte i dup el, aa cum produce elementul P
nu las textul aa cum este scris, cum produce elementul PRE
Stilul BLOCKQUOTE
Stilul logic pentru introducerea citatelor lungi se realizeaz cu tag-urile
<BLOCKQUOTE></BLOCKQUOTE> i <Q></Q>. Elementul <Q> este
element inline, iar elementul <BLOCKQUOTE> este de nivel bloc. Coninutul
blocului este afiat ncepnd de pe rnd nou, cu spaiul nainte, dup, la stnga i la
dreapta de citat, practic indenteaz textul, aa cum reiese din exemplul urmtor:
<HTML>
<HEAD> </HEAD>
<BODY>
<B> <TT> CITAT</B> </TT>
<BLOCKQUOTE>
"Omul nu este decat o trestie, cea mai fragila din natura,
dar este o trestie ginditoare.
" Blaise Pascal (1623-1662)
</BLOCKQUOTE>
</BODY>
</HTML>
34
Figura 3.7. Elementul BLOCKQUOTE
3.3. Fonturi
Pentru a schimba fontul unui text utilizat (dimensiune, culoare, tip de liter)
acesta se scrie ntre etichetele <FONT > i </FONT>.
Eticheta pereche de formatare <FONT > i </FONT> este un element inline,
adic se poate aplica oriunde n interiorul unui rnd.
Atributele elementului FONT sunt: face, size i color i au sintaxa cunoscut a
unui atribut (atribut=valoare).
face indic tipul de liter utilizat pentru un font i are sintaxa:
face = lista de corpuri de liter.
n cazul n care lista are mai multe de un tip de liter, acestea se separ
prin virgule. Browser-ul va utiliza primul corp de liter recunoscut. Dac
niciunul dintre fonturi nu este gsit, browser-ul va folosi tipul de liter
36
implicit. Este indicat s se foloseasc ghilimele ( ) pentru a scrie lista de
fonturi, deoarece unele nume sunt compuse din mai multe cuvinte.
<FONT face=Arial, Chicago> Fonturi simple</FONT>
<FONT face=Arial Narrow, Helvetica Narrow, New Courier>
Fonturi compuse </FONT>
size indic dimensiunea fontului i are sintaxa size=dimensiunea.
Dimensiunea se poate exprima n dou moduri:
absolut, unde dimensiunea este un numr ntreg cuprins ntre 1 i 7, 1
fiind cea mai mic dimensiune i 7 cea mai mare dimensiune, valoarea
implicit fiind 3. Se observ c dimensiunea se exprim invers fa de
numrarea dimensiunii subtitlurilor, unde <H1> este cel mai mare, iar
<H6> este cel mai mic
relativ, unde dimensiunea unui anumit text (liter, cuvnt, fraz) este
mrit cu o unitate fa de textul din jurul lui; valori posibile:
+1,+2,+7 si -1,-2,..,-7. Modificrile relative nu pot reduce fontul sub
size=1 sau peste size=7. De exemplu, dac la dimensiunea implicit 3
se adaug 7 prin <font size=+7>, efectul este acelai dac utilizm
<font size=7> sau <font size=+4>
color indic culoarea pentru un text specificat i are sintaxa:
color=culoare. Culoarea poate fi exprimat n dou moduri :
modul text unde valoarea culoare este un nume. Exist o varietate
de culori dintre care 16 sunt culori standard, implementate de toate
browser-ele: aqua (verde marin), black (negru), blue (albastru), fuchsia
(violet deschis), gray (gri), green (verde), lime (citron), maroon (maro),
navy (bleumarin), olive (cachi), purple (violet), red (rou), silver
(argintiu), teal (verde nchis), white (alb) si yellow (galben).
modul RGB unde valoarea culorii este dat printr-un numr format
din 6 cifre hexazecimale, cte dou pentru fiecare culoare de baz din
tripletul red (rou), green (verde) i blue (albastru) i este precedat de
caracterul #. n anexa A se gsete lista complet a culorilor, date prin
nume i prin codul lor.
Pentru cele mai folosite culori avem codurile:
Black #000000
White #FFFFFF
Red #FF0000
Green #00FF00
Blue #0000FF
Elementul Basefont
Pentru a schimba fontul, chiar de la nceputul paginii, se poate folosi tag-ul
<BASEFONT atribute> care are aceleai atribute ca i tag-ul <FONT>.
Aceast etichet formateaz textul conform atributelor specificate, din locul
unde apare i pn la sfritul documentului i deci nu necesit eticheta de nchidere. n
37
interiorul elementului BASEFONT se pot gsi alte elemente FONT pentru formarea
unor secvene de text.
Utilizarea fonturilor este exemplificat n continuare:
<HTML>
<HEAD>
</HEAD>
<BODY>
<BASEFONT size=3 face=Arial>
<FONT face="Times New Roman" color="blue" size=7> Aplicarea
fonturilor</FONT><BR>
<FONT face="Courier " color="#00FF00" size=-2> acest text are dimensiune 5 si
culoarea verde</FONT><BR>
Text normal scris cu parametrii elementului BASEFONT
<FONT face="Helvetica Narrow" color="#FF0000" size=-1> Text scris cu
dimensiunea 3 si culoare rosie</FONT><BR>
Succes in continuare la insusirea
<FONT size=+1> H </FONT> <FONT size=+1> T </FONT>
<FONT size=+1> M </FONT> <FONT size=+1> L </FONT>
</BODY>
</HTML>
Figura 3. 9. Fonturi
38
4. Liste
Elementul OL
Lista ordonat are toate articolele numerotate, browser-ul fiind acela care
atribuie automat secvena. Pentru a crea o list ordonat se folosete tag-ul pereche
<OL > </OL>. Elementul OL este element de bloc i va fi afiat la nceputul
rndului.
39
Elementul LI
Pentru a introduce elemente n list se folosesc etichetele <LI> i </LI>.
Textul cuprins ntre aceste elemente va fi considerat un articol al listei. Eticheta de
sfrit </LI> nu este obligatorie n HTML, dar n XHTML da.
Atributele unei liste ordonate au sintaxa: atribut=valoare i sunt:
type care are ca valoare un caracter care indic modul de numerotare.
Exist cinci valori posibile:
- 1 pentru cifre arabe: 1,2,3 etc i este valoare implicit
- a pentru literele mici : a,b,c etc.
- A pentru litere mari: A,B,C etc.
- i pentru cifre romane scrise cu litere mici: i, ii, iii, iv etc.
- I pentru litere romane scrise cu litere mari: I, II, III, IV
start indic de unde ncepe numerotarea. Primul simbol dintr-o list
ordonat este: 1, a, A, i sau I.
Urmtorul exemplu creeaz o list ordonat pentru exemplu de mai sus:
<HTML>
<HEAD> </HEAD>
<OL>LISTE ORDONTE
<LI> COPY
<LI> CUT
<LI> PASTE
<LI> FIND
<LI> DELETE
<LI> REPLACE
</OL>
<BODY> </HTML>
Figura 4. 1. Liste ordonate
n exemplul urmtor se creeaz liste ordonate imbricate:
<HTML>
<HEAD> </HEAD>
<BODY><B>LISTE ORDONTE IMBRICATE </B>
<OL> PRINCIPALELE COMENZI DIN MENU FORMAT:
<LI> FONT
<OL type="A" >MENU FONT ARE TREI ETICHETE
<LI > Font are trei caracteristici
<OL type="a">
<LI> Font
<LI> Font style
<LI> Size
</OL>
<LI> Character Spacing
<LI> Text Effects
</OL>
40
<LI> PARAGRAPH
<LI> BULLETS AND NUMBERING
<LI>COLUMNS
</OL>
<BODY></HTML>
41
Figura 4. 3. Liste marcate
Lista vid
O list fr niciun element se numete list vid. Putem crea o list vid i
n scopul de a indenta un text (aa cum face elementul <blockquote>).
<HTML>
<HEAD> </HEAD>
<BODY><B> LISTA VIDA</B>
<UL> <B> Atributele elementului BASEFONT in HTML: </B><BR>
FACE - pentru tip de litera <BR>
SIZE - pentru dimensiune <BR>
COLOR- pentru culoare <BR>
</UL>
<BODY> </HTML>
42
<HTML>
<HEAD> </HEAD>
<BODY>LISTE NEORDONATE IMBRICATE
<UL> COMENZI EDIT SI MOD DE EXECUTIE
<LI> COPY
<UL>
<LI> CTRL+C
<LI> Menu Edit
<LI> Menu contextual
<LI> Buton bara
<LI> Drag & Drop
</UL>
<LI> CUT
<UL type="square">
<LI> CTRL+X
<LI> Menu Edit
<LI> Menu contextual
<LI> Buton bara
<LI> Drag & Drop
</UL>
<LI> PASTE
<UL type="disc">
<LI> CTRL+V
<LI> Menu Edit
<LI> Menu contextual
<LI> Buton bara
</UL>
<LI> FIND
<UL>
<LI> CTRL+F
<LI> Menu Edit
</UL>
<BODY> </HTML> Figura 4. 5. Liste marcate imbricate
43
<HTML>
<HEAD> </HEAD>
<BODY>LISTE MIXTE IMBRICATE
<OL type="I" start=4> Citeva elemente HTML
<LI> FONT
<UL type="disc">
<LI> face
<LI> size
<LI> color
</UL>
<LI>BASEFONT
<UL type="circle">
<LI> face
<LI> size
<LI> color
</UL>
<LI> OL
<UL type="square">
<LI> type
<LI> start
</UL>
<BODY>
</HTML> Figura 4. 6. Liste mixte imbricate
<HTML>
<HEAD> </HEAD>
<BODY>
<DL>ORAR
<DT>LUNI
<DD>10-18
<DT>MARTI
45
<DT>MIERCURI
<DD>9-17
<DT>JOI
<DD>9-13
<DD>15-19
<DT>VINERI
<DD>9-14
</DL>
</BODY>
</HTML>
<HTML>
<HEAD> </HEAD>
<BODY>
<DL compact> ORAR
<DT>LUNI <DD>10-18
<DT>MARTI
<DT>MIER
<DD>9-17
<DT>JOI
<DD>9-13
<DD>15-19
<DT>VINERI
<DD>9-14
</DL>
</BODY>
</HTML>
Figura 4. 9. List de definiii compactat
46
5. Tabele
5.1. Generaliti
Tabelele reprezint n HTML un element important, evideniindu-se prin
tag-urile <TABLE> i </TABLE>. El are o form dreptunghiular i este alctuit
din linii i coloane la intersecia crora se afl celulele.
Tabelele ofer o mulime de posibiliti pentru a evidenia un text pe mai
multe linii i coloane, pentru delimitarea spaiului unei pagini, n vederea gruprii
ntr-o machet a unor elemente (text, imagini etc).
Spre deosebire de tabelele din procesoarele de texte, tabelele din HTML au
dezavantajul c sunt destul de greu de construit. Trebuie specificai parametrii
tabelului, ai liniilor i ai celulelor. Orice tabel este compus din trei elemente i
anume:
<TABLE> ... </TABLE> descrie un tabel
<TR atribute> ... </TR> (Table Row) descrie o linie a unui tabel
<TD atribute> ... </TD> (Table Data) descrie o celul a tabelului
OBSERVAII!
Etichetele de nchidere </TR> i </TD> sunt opionale, astfel o linie
nou ncepe atunci cnd se ntlnete o nou etichet <TR>. n
XHTML aceste etichete sunt obligatorii.
Dac o linie a unui tabel are mai multe celule dect restul liniilor,
automat toate liniile vor avea acest numr maxim de celule, browser-ul
adugnd celule vide liniilor, pentru a respecta forma dreptunghiular a
tabelului.
n lipsa unor atribute de formatare a tabelului, toate celulele unei
coloane au limea impus de cea mai lat celul.
Celulele unui tabel pot conine orice tip de informaie: text, imagine,
tabele, sau chiar combinaii ale acestora.
Figura 5. 1. Tabele
Atributul BORDER
Aa cum am mai precizat, un tabel este afiat implicit fr bordur i
caroiaj interior. O bordur pentru un tabel poate fi introdus prin atributul
border=valoare, unde valoare reprezint grosimea n pixeli a liniei de contur a
tabelului.
48
OBSERVAII!
Dac valoare=0, atunci border-ul lipsete i este echivalent cu lipsa
atributului din <TABLE>
Valoarea implicit a border-ului este 1, deci border fr valoare este
echivalent cu border =1
Dac valoare <> 0 atunci linia de contur este afiat n 3-D
Dac n exemplul din figura 5.1 adugm atributul border la eticheta
<TABLE border> va aprea o linie de contur de grosime 1
<TABLE border=0> tabelul nu va avea contur
<TABLE border=5> tabelul va avea un contur de grosime 5
aa cum reiese din figura 5.2.
Atributul BORDERCOLOR
Acest atribut indic culoarea bordurii n Netscape Navigator, iar n Internet
Explorer indic i culoarea caroiajului interior al tabelului. Sintaxa lui este
bordercolor=valoare, unde valorile posibile sunt ca i ale atributului color de la
etichetele <FONT> i <BASEFONT> i anume
un nume de culoare
o secven RGB (red, green, blue) de 6 cifre hexazecimale, cte dou
pentru fiecare culoare, precedate de #.
Atributul FRAME
Acest atribut ofer un control i, mai precis, al chenarelor din jurul
tabelelor i are sintaxa frame= valoare. Valorile posibile i modul de afiare a
lor sunt:
a11 a12
- lhs afieaz o linie la stnga a21 a22
a11 a12
- rhs afieaz o linie la dreapta
a21 a22
- vside afieaz linii la dreapta i la stnga a11 a12
a21 a22
Atributul ALIGN
Atributul align precizeaz alinierea tabelului n pagin. Valorile posibile
sunt: left (implicit), right i center.
n cazul n care exist i text, acesta va fi poziionat fa de tabel n funcie
de alinierea acestuia.
Un exemplu este dat mai jos:
<HTML><HEAD></HEAD>
<BODY>
<TABLE frame=vsides border align= left >
<TR ><TD>a11<TD>a12
<TR><TD>a21<TD>a22
</TABLE>
<P>Textul este aliniat la stanga tabelului </P>
<TABLE border rules=none align= right >
<TR ><TD>a11<TD>a12
<TR ><TD>a21<TD>a22
</TABLE>
<P>Textul este aliniat la dreapta tabelului</P>
Acesta este un tabel aliniat la centru. Textul apare deasupra si
<TABLE border=4 rules=all align= center >
<TR ><TD>a11<TD>a12
<TR ><TD>a21<TD>a22
51
</TABLE>
<P>sub tabel</P>
</BODY>
</HTML>
52
Figura 5. 5. Atributele width i height
Atributul CELLSPACING
Acest atribut definete spaiul dintre celule. Valorile acestui atribut se pot
da n pixeli sau n procente fa de dimensiunea blocului printe. Valoarea
implicit este 0 pentru tabelele fr caroiaje i 2 pentru cele cu caroiaj.
Atributul CELLPADDING
Acest atribut definete spaiul lsat ntre marginea celulei i informaia din
celul (text, imagine etc). Valoarea implicit este 0. Valorile atributului pot fi date
n numere (ce reprezint distana n pixeli) sau n procente.
n exemplul de mai jos sunt utilizate aceste atribute.
<HTML>
<HEAD></HEAD>
<BODY>
<TABLE border=5
bordercolor=#0000FF
align=center width=50% height=50
cellspacing=3 cellpadding=10>
<TR><TD>a11<TD>a12<TD>a13
<TR><TD>a21<TD>a22<TD>a23
<TR><TD>a31<TD>a32<TD>a33
</TABLE>
</BODY>
</HTML>
Figura 5. 6. Atributele elementului TABLE
53
Atributele HSPACE i VSPACE
Aceste atribute asigur distana de la tabel la celelalte componente din
pagin, pe orizontal (hspace) i pe vertical (vspace). Aceste atribute nu sunt
valabile n Internet Explorer. Valorile acestor atribute sunt date n pixeli. Pentru
exemplificare s-a folosit browser-ul MozillaFirefox:
<HTML> <HEAD> </HEAD>
<BODY>
Acesta este un text inaintea tabelului. Acesta este un text inaintea tabelului.
Acesta este un text inaintea tabelului. Acesta este un text inaintea tabelului.
Acesta este un text inaintea tabelului.
<TABLE border=2 bordercolor=red hspace="50" vspace="30">
<TR><TD>a11<TD>a12<TD>a13
<TR><TD>a21<TD>a22<TD>a23
<TR><TD>a31<TD>a32<TD>a33
</TABLE>
Acesta este un text dupa tabel. Tabelul de mai jos va avea spatii
albe in jurul lui. Acesta este un text dupa tabel. Tabelul de mai jos va avea
spatii albe in jurul lui. Acesta este un text dupa tabel. Tabelul de mai jos va
avea spatii albe in jurul lui.
</BODY> </HTML>
Atributul BGCOLOR
54
urmtoarea: a elementului <TD>, a elementului <TR> i, n final, a elementului
<TABLE>.
5.2.1. Elementul TH
n cadrul unui tabel se poate nlocui eticheta <TD> cu eticheta <TH>
pentru a specifica antete de coloane i de linii. Elementul <TH> este aproape
identic cu <TD>, cu dou excepii: dac celula conine text, el este afiat aldin
(bold) i este centrat n celul.
n exemplul de mai jos se red un tabel cu antet de linie i de coloan.
<HTML><HRAD>
</HEAD><BODY>
<TABLE border align=center
cellspacing=2 bgcolor=yellow vspace=70>
<TR> <TH> Beneficii 2006 <TH> Semestrul I <TH> Semestrul II
<TR> <TH> Bucuresti <TD> 100000 euro <TD> 250000 euro
<TR> <TH>Iasi <TD> 200000 euro <TD> 300000 euro
</TABLE>
</BODY>
</HTML>
Figura 5. 8. Elementul TH
55
n exemplul de mai sus adugm o etichet tabelului
<HTML>
<HRAD></HEAD>
<BODY>
<TABLE border align=center
cellspacing=2 bgcolor=yellow vspace=70>
<CAPTION align=bottom> <b> Vanzari </b></CAPTION >
<TR> <TH> Beneficii 2005 <TH> Semestrul I <TH> Semestrul II
<TR> <TH> Bucuresti <TD> 100000 euro <TD> 250000 euro
<TR> <TH>Iasi <TD> 200000 euro <TD> 300000 euro
</TABLE>
</BODY>
</HTML>
56
align aliniaz orizontal coninutul tuturor celulelor unei linii. Valorile
posibile sunt: left (aliniere implicit), right, center sau justify
valign specific alinierea pe vertical pentru toate celulele dintr-o linie.
Valorile posibile sunt: top (implicit), middle (centru) i bottom (jos)
bgcolor culoare de fond pentru toate celulele unei linii. Are aceleai
valori ca i atributul bgcolor pentru TABLE
Observaii!
Toate atributele liniei le gsim i n lista atributelor pentru TABLE
Atributul align pentru TABLE aliniaz tabelul pe orizontal, n timp ce
atributul align al elementului TR aliniaz pe orizontal coninutul
celulelor unei linii.
Atributul bgcolor al lui TABLE se refer la culoarea de fond a tabelului,
n timp ce atributul bgcolor al lui TR se refer la culoarea de fond a
celulelor dintr-o linie.
Atributele de linie sunt prioritare celor de tabel.
Un exemplu care utilizeaz atributele de linie:
<HTML><HRAD></HEAD><BODY>
<TABLE border align=center cellspacing=2 bgcolor=yellow >
<TR align=center valign=middle bgcolor=red>
<TD> Prescurtarea HyperText Markup Language <TD> HTML
<TR align=right valign=bottom> <TD> Limbaj<TD> Pagini
</TR>
</TABLE> </BODY></HTML>
57
5.4. Atributele elementelor TD i TH
Elementele TD i TH descriu celulele unui tabel. Diferena dintre aceste
elemente este aceea c, n cazul utilizrii elementului TH, coninutul celulei, dac
acesta este text, este scris aldin. Atributele de celul se scriu n eticheta <TD
atribut>, sunt prioritare celor de linie (TR) i celor de tabele (TABLE) i sunt:
58
Atributele align i valign
Aceste atribute stabilesc alinierea pe orizontal (align) i pe vertical
(valign) a textului dintr-o celul. Au aceleai valori ca i atributele cu aceleai
nume de la nivel de linie i tabel, dar sunt prioritare fa de alinierea la nivel de
linie i de tabel.
<html>
<head></head><body>
<table border bordercolor="#00FF00">
<TR><TD>a11<TD>a12<TD>a13
<TR><TD>a21<TD>a22
<TR><TD>a31<TD>a32<TD>a33
</table>
</body></html>
60
<HTML>
<HEAD>
</HEAD>
<BODY>
<TABLE border=2>
<TR><TD>a11<TD>a12<TD>a13
<TR><TD colspan=2>a21<TD>a23
<TR><TD>a31<TD> <TD>a33
</TABLE></BODY></HTML>
Figura 5. 14. Celule vide
Un alt exemplu mai complet de utilizare a celor dou atribute va fi dat mai jos:
<HTML><HEAD></HEAD><BODY>
<TABLE border=4 bordercolor=blue>
<TR> <TD colspan=3 align=center valign=25%>
<font sise=6 color =red>
atributele colspan si rowspan </font>
<TR><TD rowspan=3> a11<br>a21 <br>a31
<TD>a12<TD colspan=2 rowspan=3>
a13 a14<br>a23 a24 <BR> a33 a34
<TR> <TD>a22 <TR><TD>a32 <TR><TD>a41
<TD colspan=3 align=center> a42 a43 a44
</TABLE>
</BODY> </HTML>
Atributul NOWRAP
Pentru a afia coninutul unei celule pe un singur rnd se utilizeaz
atributul NOWRAP. n cazul c textul depete dimensiunea celulei, apare bara de
defilare pe orizontal, ca n exemplul de mai jos.
61
<HTML>
<HEAD> </HEAD>
<BODY>
<TABLE border=2 align=center
width=100% height=100%>
<TR><TD>XHTML
<TD nowrap>Extensible HyperText MarkupLanguage
<TR> <TD> Sigla <TD>Limbaj
</TABLE>
</BODY>
</HTML>
OBSERVAII!
aceste blocuri sunt incluse n blocul <TABLE> ... </TABLE>, dar nu
sunt obligatorii n realizarea unui tabel
62
Fiecare bloc <TABLE> ... </TABLE> poate conine numai cte un bloc
de seciune
Etichetele de sfrit </THEAD>,</TFOOT>,</TBODY> sunt opionale.
Eticheta <THEAD> i <TFOOT> trebuie s apar dup <TABLE> i
nainte de <TBODY>. Browser-ul poate afia liniile de final nainte ca
liniile corpului s conin datele care se ncarc.
Atributele pentru aceste elemente se aplic pentru toate liniile care
cuprind blocurile, n lipsa altor formatri, i acestea sunt: align, valign,
bgcolor.
Fiecare din aceste elemente conin etichetele <TR> i <TD> obinuite.
Structura unui tabel care utilizeaz facilitatea de grupare de linii va fi:
<TABLE atribute>
<CAPTION > ... </CAPTION>
<THEAD>
<TR>
.
</THEAD>
<TFOOT>
<TR>
.
</TFOOT>
<TBODY>
<TR>
</TBODY>
</TABLE>
n exemplul din figura 5.9, se grupeaz liniile n blocuri de antet, subsol i
corp de tabel:
<HTML><HEAD></HEAD><BODY>
<TABLE border=3 bordercolor=light align=center
cellspacing=2 bgcolor=yellow vspace=70>
<CAPTION align=bottom> <B> Vnzri </B></CAPTION>
<THEAD>
<TR> <TH colspan=3>Beneficiul pe anul 2006
<TR><TH>Judet <TH> Semestrul I<TH> Semestrul II
</THEAD>
<TFOOT>
<TR><TH> TOTAL<TD> 30000 ron<TD> 55000 ron
</TFOOT>
<TBODY>
<TR<TH> Bucuresti <TD> 10000 ron<TD> 25000 ron
<TR><TH>Iasi <TD> 20000 ron <TD> 30000 ron
</TBODY>
</TABLE> </BODY> </HTML>
63
Figura 5. 17. Gruparea liniilor
65
6. Imagini
66
Exemple de utilizare a adreselor URL absolute i relative vor fi date n
exemplele urmtoare.
Exist numeroase formate grafice, dar cele mai rspndite sunt:
GIF (Graphics Interchange Format) introdus de Compuserve
JPEG (Joint Photographic Expert Group)
PNG (Portable Network Graphic Format Grafic portabil n reea)
Aceste formate sunt dependente de platform. Imaginile grafice sunt
construite din pixeli, care sunt puncte distincte de informaie de imagine. Fiecare
pixel necesit un bit de culoare. Principalele caracteristici ale formatelor de imagine
sunt: numrul de culori, compresia, transparena, ntreeserea i animaia.
Asemnrile i deosebirile dintre cele trei formate grafice sunt:
Imaginile GIF pot utiliza doar 256 de culori, avnd nevoie de 8 bii, n
timp ce formatele JPEG i PNG pot utiliza milioane de culori, avnd 24 de
bii de culoare, respectiv 32 de bii /pixeli de culoare. Ceea ce face
formatul GIF att de utilizat nu este numai paleta mic de culori (256), dar
i posibilitatea reducerii numrului de culori, astfel, dac este nevoie doar
de 2 culori, se utilizeaz numai un bit, ceea ce reduce dimensiunea
fiierului de 8 ori.
Toate aceste trei formate grafice pot comprima imaginea pentru a reduce
dimensiunile fiierelor. Comprimarea se poate face, n mod diferit, pentru
fiecare format, i, din aceste motive, ele pot avea dimensiuni mai mici
ntr-un format dect n altul.
Formatele GIF i PNG admit culoarea transparent, n timp ce formatul
JPEG nu admite transparena.
Formatele GIF i PNG admit animaia, n timp ce, cu formatul JPEG, nu
se poate obine animaie. De exemplu, pentru a obine animaie pentru
imagini GIF se poate folosi pentru Windows pachetul GIF Construction
Set, iar pentru Macintosh pachetul soft GIFBuilder.
Toate cele trei formate accept ntreeserea. De exemplu, cnd se
vizualizeaz o pagin web, se pot observa imaginile care apar linie cu
linie, de la forma brut pn la redarea final, aceasta reprezint
ntreeserea. Dei dimensiunea fiierelor crete cu pn la 10%, cu ajutorul
acestei ntreeseri, vizitatorul poate s-i fac o imagine despre ceea ce se
va descrca.
Avnd n vedere cele cinci caracteristici ale formatelor de imagine, acestea
pot fi recomandate:
GIF pentru majoritatea imaginilor din web, butoane, panouri publicitare,
desene etc., datorit dimensiunii mici a fiierelor.
JPEG pentru fotografii, cnd se dorete s se redea ct mai exact culoarea
real a imaginii.
PNG pentru desene complexe, dar i pentru fotografii, acesta fiind
formatul care mbin caracteristicile celor dou.
67
Unele imagini pot fi transformate n format GIF cu ajutorul unor programe
freeware (gratuite) sau shareware (contra cost), dar calculatoarele moderne accept
salvarea imaginilor direct n format GIF.
Atributul SRC
Atributul src este un atribut obligatoriu al elementului IMG, care identific
fiierul ce conine imaginea care se dorete a fi inserat. Fiierele imagine pot avea
68
extensia: .jpg, jpeg, png etc. Fiierul care conine imaginea se gsete n directorul
curent (ca n exemplul de mai sus), n alt folder din calculatorul curent sau n reeaua
web.
n cazul n care fiierul se afl:
n alt locaie dect directorul curent, numele fiierului trebuie precedat de
calea relativ la directorul curent
n reeaua web, trebuie dat adresa URL absolut, ca de exemplu:
http://www.fmi.unibuc.ro./facmat.jpg
Atributul alt
Exist posibilitatea ca imaginile s nu se poat ncrca din diferite motive,
situaie n care se folosete atributul alt al elementului IMG. Valoarea acestui atribut
este un text, care va fi afiat n locul imaginii.
<HTML>
<HEAD></HEAD>
<BODY>
<IMG src="Taj_Mahali.jpg" height =150 width = 150 alt="Hotelul TRUMP
Taj Mahal">
de la Atlantic City
</BODY>
</HTML>
Atributul align
Atributul align indic browser-ului cum va fi aliniat poza fa de text. n
lipsa unei opiuni, poza este plasat acolo unde este scris n cod (IMG este element
inline, iar textul ncepe de la baza pozei).
Valorile atributului sunt:
left aliniere la stnga i textul curge pe lng imagine n dreapta ei,
ncepnd din partea superioar
right aliniere la dreapta i textul curge pe lng imagine n stnga ei,
ncepnd din partea superioar
69
top textul este plasat n partea superioar a imaginii
middle textul are plasat, la mijlocul imaginii, numai primul rnd, restul
continund sub imagine
bottom textul este plasat n partea de jos a imaginii i continu sub imagine
70
Figura 6. 3. Atributul align al elementului IMG
71
Atributul Border
Atunci cnd se insereaz o imagine, browser-ul o va afia fr chenar. Pentru
a aduga un chenar unei imagini se folosete atributul border=nr_pixeli, unde
nr_pixeli reprezint grosimea chenarului n pixeli. Valoarea implicit este 0.
Dac n exemplul din figura 6.1 se mai adaug acest atribut
<IMG src="Taj_Mahal.jpg" height =150 width = 150 border=4>
browser-ul va afia:
OBSERVAII!
Dac se modific doar o dimensiune, imaginea va fi afiat de browser
proporional.
Dac se modific ambele dimensiuni, imaginea va fi afiat de browser
deformat
Un exemplu de redimensionare a imaginii este dat mai jos.
<HTML> <HEAD></HEAD>
<BODY>
<IMG src="c:/carte_web/UnivSH.jpg" alt="Universitatea Spiru Haret">
72
<IMG src="c:/carte_web/UnivSH.jpg" alt="Universitatea Spiru Haret"
width=80 height=200>
<IMG src="c:/carte_web/UnivSH.jpg" alt="Universitatea Spiru Haret"
height=150>
</BODY> </HTML>
73
contribuie n mod decisiv la dezvoltarea i modernizarea nvmntului, tiinei i
culturii romneti.
</BODY> </HTML>
74
7. Legturi (Link-uri)
7.1. Elementul A
Pentru a crea o legtur se folosete marcajul ancor, care are sintaxa:
<A atribute> coninut </A>.
Coninutul dintre marcajele <A> i </A> poate fi text i/sau imagine, este
afiat de browser sub form de legtur (colorat i subliniat), i poate accepta
comenzi de la mouse (un clic) sau de la tastatur (ENTER). Cnd este deasupra
unei legturi, cursorul grafic ia forma unei mini -, indicndu-ne astfel c
browser-ul este pregtit s descarce resursa Internet de la adresa URL indicat.
Dac un document are mai multe legturi ne putem deplasa de la una la alta i cu
75
mouse-ul i cu ajutorul tastei TAB, iar pentru a face o legtur activ se execut
clic cu butonul stng pe legtur sau se tasteaz ENTER. La un moment dat doar o
legtur poate fi activ i n jurul coninutului legturii este afiat un chenar de
ctre unele browser-e.
Atributele marcajului <A>
Atributele marcajului <A> sunt: href, target, title, name.
Atributul HREF (referin hipertext)
Acest atribut este obligatoriu pentru elementul legtur (ca src pentru
elementul img), are sintaxa href=adresa URL i are rolul de a identifica o adres
URL absolut (de pe Internet) sau relativ (local).
n exemplul de mai jos dm o referin ctre un fiier local, flori.jpg, i
ctre pagina Universitii Bucureti, de pe WEB.
<HTML>
<HEAD> </HEAD>
<BODY>
Florile mele preferate
<A href="flori.jpg"> CRINI </A>
<P>
Detalii despre Universitatea Bucuresti
<A href="http://www.unibuc.ro">UnivBuc</A>
</P>
</BODY>
</HTML
Figura 7. 1. Legturi
Atributul TARGET
Cnd utilizatorul activeaz o legtur, browser-ul nlocuiete fereastra care
conine legtura cu o nou fereastr, specificat de adresa URL din href. Atributul
target face s se schimbe aceast operaie implicit i el are sintaxa
76
target=nume, unde nume definete fereastra n care va fi ncrcat noua
pagin. Dac nu exist nicio fereastr cu acest nume, va fi creat o fereastr nou
cu acest nume.
Numele este orice ir de caractere sau valori constante: self-implicit,
blank, parent, top. Pot fi ncrcate n aceeai fereastr mai multe pagini i, n acest
caz, cu Back i Forward, se vizualizeaz paginile ncrcate.
n exemplul din figurile 7.3 i 7.9, se utilizeaz acest atribut.
Atributul TITLE
Acest atribut are un caracter general i poate fi ataat la majoritatea
elementelor HTML. Sintaxa acestui element este: title=valoare. Cnd mouse-ul
este deasupra coninutului elementului <A> coninut </A> se transform ntr-o
mn i va afia valoarea atributului TITLE, ntr-o sugestie de instrument (ntr-un
cadru galben).
Atributul NAME
Acest atribut este utilizat pentru a defini o ancor n interiorul unei pagini.
Sintaxa acestui atribut este: name=valoare. Atributul va fi exemplificat n
seciunea 7.7.
77
Dac se dorete s se viziteze alt pagin a respectivului site, se scrie
numele fiierului .html, respectiv, ca n exemplul de mai jos:
<HTML> <HEAD> </HEAD>
<BODY>
<A href="http://www.edu.ro/index.php/articles/c108/" target="univ">
Lista Universitati </A> <BR>
<A href="http://www.edu.ro/index.php/articles/c487/" target="univ">
Lista Universitati Stat </A> <BR>
<A href="http://www.edu.ro/index.php/articles/3880" target="univ">
Lista Universitati Particulare Acreditate </A><BR>
<A href="http://www.edu.ro/index.php/articles/3882" target="univ">
Lista Universitati Particulare Autorizate </A><BR>
<A href= "http://www.edu.ro/index.php/articles/3881" target="univ">
Lista Postuniversitare </A><BR>
</BODY>
</HTML>
<HTML>
<HEAD> <TITLE> Legaturi cu imagini </TITLE> </HEAD>
<BODY>
Facultatea de Matematica-Informatica UnivBuc
<A href=http://www.fmi.unibuc.ro>
<IMG src= "C:\My Documents\My Pictures\facmat.bmp" width=70 height=70>
</A>
</BODY>
</HTML>
78
Figura 7. 4. Legturi cu imagine
Dac n site-ul vizitat nu exist o imagine ca fiier .gif sau .jpg, atunci se
copiaz imaginea existent cu Print Screen, se deschide Paint i se lipete (Paste)
imaginea. Se decupeaz din imagine ce ne intereseaz i se copiaz ntr-un nou
fiier care se salveaz cu nume.bmp.
Dac imaginea dintr-o pagin este un fiier imagine, se d clic dreapta i
din Properties se afl numele fiierului. Se pot folosi i imagini din calculatorul
nostru i atunci adresa URL a atributului src este una relativ.
Un link poate fi format i din text i din imagine ca n figura de mai jos:
<HTML>
<HEAD> <TITLE> Legaturi cu text si cu imagini </TITLE> </HEAD>
<BODY>
Facultatea de Matematica-Informatica UnivBuc
79
<A href=http://www.fmi.unibuc.ro> UnivBuc
<IMG src="C:\My Documents\My Pictures\facmat.bmp" width=70
height=70> </A>
</BODY> </HTML
80
C:/
Pag_0.pdf
SISTEM
Pag_1.html
Pag 2.pdf
PROIECTARE
Pag_2.htm
Pag_3.htm
EXPLOATARE
Pag_4.htm
Pag 5.htm
82
Figura 7. 8. Legturi la site-uri non Web
Se opteaz dac fiierul s fie deschis sau salvat. n unele cazuri Open este
implicit, adic dup download-are este lansat programul care-l prelucreaz, de
exemplu un sunet i un film.
De exemplu:
<A href=d:/poze/craciun_2006.avi> MOS CRACIUN</A>
Fiierele .avi se pot gsi i pe site-uri, dar dureaz mult transferul pe
calculatorul nostru
browser-ul cunoate tipul de fiier i acesta va fi deschis n fereastra sa.
Utiliznd figura 7.6, avem codul HTML:
83
<HTML>
<HEAD>
</HEAD>
<BODY>
<A Href=../../../pag_2.pdf target=FPDF>
Fisier PDF </A> <BR>
<A Href=/pag_0.pdf target=FPDF>
Alt Fisier PDF </A> <BR>
<A Href=../../../pag_1.txt target=FTXT>
Fisier text </A> <BR>
<A Href=/SISTEM/IMAGINI/pag1.gif:/
target=FGIF> DESEN</A>
</BODY>
</HTML>
86
S considerm o agend cu salariaii unei firme:
<HTML>
<HEAD> </HEAD>
<BODY>
<H1> Agenda <H1>
<A href="#a-c"> [A-C] </A>
<A href="#d-h"> [D-H] </A>
<A href="#i-l"> [I-L] </A>
<A href="#m-n"> [M-N] </A>
<A href="#o-s"> [O-S] </A>
<A href="#t-w"> [T-W] </A>
<H2> <A id="a-c"> [A-C] </A>
<H2>
Antonescu Ion <br>
Badila Ana <br>
Constantinescu Ana <br>
Constantinescu Dan <br>
<H2> <A id="d-h"> [D-H] </A>
<H2>
Dorobantu Ion<br>
Ene Horia<br>
Horia .<br>
<H2> <A id="i-l"> [I-L] </A> <H2>
Ionescu Ion<br>
Jeny Amalia<br>
Login Ana<br>
<H2> <A id="m-n"> [M-N] </A>
<H2>
Manea Flori<br>
Niculescu Silvia<br>
<H2> <A id="o-s"> [O-S] </A>
<H2>
Oprea Florin<br>
Radulescu Mihai<br>
Sandulescu Radu <br>
<H2> <A id="t-w"> [T-W] </A>
<H2>
Tomescu Emil<br>
Udrea Xenia<br>
</BODY> </HTML>
Figura 7. 11. Salt ntr-o agend
87
7.8. Trimiterea automat a unui e-mail
Dac dorim s trimitem un e-mail dintr-o pagin, se creeaz o legtur la o
adres e-mail. Legtura va avea atributul href a crui valoare este mailto (protocol
pentru pot), urmat de: i de o adres de e-mail valid, de exemplu:
<A href=mailto:niculescurodica@yahoo.com> Puteti sa-mi scrieti </A>
Se poate folosi elementul <ADRESS> de formatare logic, care are rolul
de a evidenia o adres (mesajul se va scrie la nceput de linie), aa cum reiese din
exemplu de mai jos. Sintaxa elementului ADRESS este:
<ADRESS> <A href=mailto:niculescurodica@yahoo.com> Puteti sa-mi scrieti
</A> </ADRESS>
Cnd se execut clic pe o legtur e-mail, se va deschide o aplicaie e-mail
care are, n cmpul To, adresa din legtur i care permite s introducem mesajul.
Se poate trece i un subiect, care va fi desprit de adres prin ?, precum i un
text n interiorul mesajului (de forma body=text) i care se va separa de subiect prin
caracterul &, ca n exemplul de mai jos:
<HTML>
<HEAD>
</HEAD>
<BODY>
<ADRESS> <A href=mailto:niculescurodica@yahoo.com? subject=Anunt&
Body=Va rog sa-mi scrieti!> Astept mesaje </A> </ADRESS>
</BODY>
</HTML>
88
7.9. Culorile legturilor
O legtur poate fi n una din strile:
activ
vizitat
nevizitat
n funcie de starea n care se afl, o legtur are o anumit culoare i
anume:
Starea activ are:
Culoarea implicit #FF0000 (rou)
Culoarea se poate schimba cu atributul alink=culoare al
elementului BODY
Starea vizitat are:
Culoarea implicit #800080 (purple)
Culoarea se poate schimba cu atributul vlink=culoare al
elementului BODY
Starea nevizitat are:
Culoarea implicit #0000FF (albastru)
Culoarea se poate schimba cu atributul link=culoare al
elementului BODY
<HTML>
<HEAD>
</HEAD>
<BODY alink=green
vlink=magenta
link=darkblue>
<A href=/pag_1.html>Analiza</A>
<A href=/pag_2.html>Proiectare</A>
<Ahref=/pag_0.pdf>Prima pagina</A>
</BODY>
</HTML>
89
8. Elementele de structur: HTML, HEAD i BODY
90
<HTML>
<HEAD>
<TITLE>
Structura paginii WEB
</TITLE>
</HEAD>
<BODY>
Aceasta este structura general a unui document HTML
</BODY>
</HTML>
92
http-equiv valorile posibile sunt:
from
replay-to
creation-date
expires
refresh
pragma
Elementul META are i alte atribute, dar foarte rar sunt folosite. Aceasta
din cauz c au aprut alte modaliti prin care aceleai efecte sau chiar mai multe
se pot rezolva mai eficient.
Realizatorii motoarelor de cutare au dorit s ajute programatorii paginilor
web cu elementul META pentru a evidenia coninutul paginilor. Unii autori au
introdus cuvinte care nu au legtur cu paginile web, doar pe motiv de a prea mai
interesani. Eticheta META devine astfel inutil, poate o unealt pentru SPAM
(informaii nedorite). Din acest motiv, unele motoare au renunat definitiv la
informaiile din META, iar altele, dimpotriv, dac paginile nu conin elemente
META, pun paginile la sfritul listei. Exist firme specializate care, contra cost,
optimizeaz site-urile pentru motoarele de cutare (SEO-Search Engine
Optimization).
NOT! n atributele elementului META nu se folosesc cuvinte care nu
sunt incluse n pagin i de asemenea nu se repet cuvinte.
n continuare se trec n revist atributele enumerate mai sus.
Descrierea unei pagini (fiier html)
Se utilizeaz eticheta META cu atributele:
name=description content=sir de caractere
Motorul de cutare va afia textul (valoarea atributului content); n lipsa
acestui atribut, motorul va afia primele rnduri ale paginii.
Cuvinte cheie
Cuvintele cheie specific motoarelor de cutare cuvintele dup care s fie
regsit un anumit site. Aadar, cuvintele cheie declarate trebuie s se regseasc n
93
interiorul paginii. n exemplul anterior, dac se introduc dou elemente META,
browser-ul va afia aceeai fereastr ca n figura 8.2, cu excepia antetului de titlu.
<HTML>
<HEAD>
<BASE href="http://www.edu.ro/index.php/articles">
<TITLE> Elementul META_KEY </TITLE>
<META name="description" content="invatamint suparior">
<META name="keywords" content=" universitati, stat, particulare,
postuniversitare">
</HEAD>
<BODY>
<A href="c108"> Lista Universitati </A> <BR>
<A href="c487"> Lista Universitati Stat </A><BR>
<A href="3880"> Lista Universitati Particulare Acreditate </A> <BR>
<A href="3882"> Lista Universitati Particulare Autorizate </A> <BR>
<A href="3881"> Lista Poastuniversitare </A> <BR>
</BODY>
</HTML>
Author i copyright
Pentru a introduce informaii despre autor sau o autoritate i despre
drepturile de copyright se introduc dou etichete <META> cu valorile atributelor
name, author i respectiv copyright. Deoarece aceste informaii nu sunt afiate
de browser este indicat s se introduc i n blocul <BODY></BODY> al
fiierului informaii, ca n exemplul urmtor (se observ c pentru a obine
simbolul se utilizeaz secvena ©).
<HTML>
94
<HEAD>
<BASE href="http://www.edu.ro/index.php/articles">
<TITLE> Elementul META_Author</TITLE>
<META name"description" content="Carte WEB">
<META name="author" content="Rodica Niculescu>
<META name="copyright" content="Editura Spiru Haret">
</HEAD>
<BODY>
copyright©2006, Editura Spiru Haret
</BODY> </HTML>
<HTML>
<HEAD>
<TITLE> Elementul META_http-equiv</TITLE>
<META name"description" content="Carte WEB">
<META name="author" content="Rodica Niculescu">
<META name="copyright" content="Editura Spiru Haret">
<META http-equiv="from" content="rodicaniculescu@gmail.com">
<META http-equiv="replay-to" content="editura_spiruharet@yahoo.com">
</HEAD>
95
<BODY>
<P> copyright©2006, Editura Spiru Haret </P>
</BODY>
</HTML>
Refresh i Pragma
Pentru transformarea, remprosptarea sau redirecionarea unei pagini se
poate folosi atributul http-equiv cu valorile refresh i pragma. n cazul
remprosptrii paginii, valoarea atributului content este un numr, care indic
96
numrul de secunde dup care pagina se remprospteaz (refresh). n cazul
redirecionrii paginii la o alt pagin, dup un numr de secunde, valoarea
atributului content este : nr secunde;adresa URL, unde adresa URL este adresa
noii pagini. Pentru a descrca o pagin ori de cte ori se acceseaz pagina, se
folosete elementul pragma.
n exemplu de mai jos se folosete elementul Meta cu atributul
http-equiv = refresh.
<HTML>
<HEAD>
<TITLE> Elementul META_http-equiv</TITLE>
<META http-equiv="refresh" content="120">
</HEAD>
<BODY>
<P> Fisierul se va actualiza automat la 2 minute</P>
</BODY>
</HTML>
97
Figura 8. 6. Elementul META cu atributul refresh de redirecionare
Lang
Acest atribut al elementului META se utilizeaz pentru a specifica limba
utilizat pentru metadate. Valoarea acestui atribut poate fi dat prin dou caractere
(exemplu: ro) sau printr-o secven de 5 caractere, indicnd dialectul unei limbi
(exemplu: en-us)
De exemplu:
<meta name= keyords content=clase, obiecte, attribute lang=ro>
Elementul STYLE
Acest element din blocul de antet este utilizat pentru introducerea stilurilor.
Foile de stil (CSS-Cascading Style Sheets) se introduc ntre etichetele <STYLE>
i </STYLE>.
Foile de stil pot fi ns definite i n fiiere separate sau inline, n corpul
programului. Stilurile vor fi tratate n capitolele 13 15.
Elementul SCRIPT
Acest element din blocul de antet este utilizat pentru introducerea unor
secvene de program de scriptare n cadrul paginilor web.
Scripturile, ca i stilurile, pot fi introduse i n fiiere separate sau n
corpul programului.
Exist mai multe limbaje de scriptare, ca de exemplu, JavaScript, Jscript,
VBScript etc. n aceast carte va fi tratat scriptul JavaScript, n capitolele 16 20.
98
Atributele elementului BODY sunt:
Background indic o imagine care dorim s apar pe fundal.
Imaginea se va repeta att pe orizontal, ct i pe vertical pn va
umple tot corpul. Acest atribut a fost descris i la tabele, fiind atribut i
al elementelor <TABLE>, <TR> i <TD>.
Bgcolor indic culoarea de fond. Dac se folosesc ambele atribute i,
n cazul n care imaginea nu se ncarc, atunci apare culoarea de fond,
altfel apare imaginea.
Text indic culoarea folosit pentru textul coninut n blocul
<BODY. </BODY>.
Atribute de margine Browser-ele utilizeaz atribute diferite pentru
margini. Valoarea atributelor de margine este un numr ntreg pozitiv
i reprezint distana n pixeli de la coninut la marginile ferestrei.
Pentru Internet Explorer exist 4 atribute pentru margini:
leftmargin (valoare implicit 10 px)
rightmargin (valoare implicit 10 px)
topmargin (valoare implicit 15 px)
bottommargin (valoare implicit 0 px)
Pentru Netscape Navigator exist 2 atribute pentru margini:
marginwidth
marginheight
Atributele link, alink i vlink indic culoarea legturilor. Aceste
atribute au fost definite n capitolul 7. Reamintim c legturile au
culori predefinite n funcie de strile n care se afl, astfel:
legturile nevizitate au culoarea implicit albastr care poate fi
schimbat cu atributul link=culoare
legturile vizitate au culoarea implicit purple care poate fi schimbat
cu vlink=culoare
legturile active au culoarea implicit rou care poate fi schimbat cu
atributul alink=culoare
n exemplul de mai jos se utilizeaz atributele elementului BODY:
<HTML>
<HEAD>
<BASE href="http://www.edu.ro/index.php/articles">
<TITLE> Elementul META_KEY </TITLE>
<META name"description" content="invatamint suparior">
</HEAD>
<BODY background="c:\windows\web\wallpaper\peace.jpg" bgcolor="blue"
leftmargin=50 rightmargin=20 topmargin=20 bottommargin= 30
link="red" alink="yellow" vlink="darkblue">
<A href="flori.jpg"> Trandafir </A> <BR>
<A href="c108">
Lista Universitati </A> <BR>
99
<A href="c487"> Lista Universitati Stat </A><BR>
<A href="3880"> Lista Universitati Particulare Acreditate </A> <BR>
<A href="3882"> Lista Universitati Particulare Autorizate </A> <BR>
<A href="3881"> Lista Postuniversitare </A> <BR>
</BODY>
</HTML>
100
Un exemplu simplu este dat mai jos.
<HTML>
<HEAD>
</HEAD>
<BODY>
<!--PAGINA N LUCRU -->
<CENTER>
SUNTEI BINE VENII
PE SITE-UL UNIVERSITII
</CENTER>
</BODY>
<HTML>
101
9. CADRE
102
Din exemplul de mai sus, rezult c browser-ul afieaz dou panouri
(cadre) pe orizontal, primul avnd nlimea de 40 de pixeli i al doilea ocupnd
restul ecranului. Coninutul celor dou pagini este afiat de browser ntr-o
fereastr.
Cadre verticale
<HTML>
<HEAD>
<TITLE> Cadre Verticale </TITLE>
<BASE href="C:/Windows/Web/Wallpaper/">
</HEAD>
<FRAMESET COLS="30%, 2*,3*">
<FRAME src="follow.jpg"> <FRAME src="tulips.jpg">
<FRAME src="home.jpg">
</FRAMESET>
</HTML>
Din exemplul de mai sus rezult c browser-ul va afia trei pagini Web,
fereastra fiind mprit n trei coloane (trei cadre) pe vertical. Aceste cadre vor
avea limile:
30% din fereastr pentru primul cadru
coloanele 2 i 3 vor ocupa restul din spaiul rmas mprit, astfel:
coloana a doua va avea 2/5 din spaiul rmas (2 + 3 = 5)
coloane a treia va avea 3/5 din spaiul rmas
103
Cadre imbricate
Dac dorim s afim patru pagini, n formatul
avem structura
<HTML>
<FRAMESET ROWS=20%, *>
<FRAME SRC=coloane.html>
<FRAMESET COLS=40%, 100, *>
<FRAME src =>
<FRAME src=>
<FRAME src=>
</FRAMESET>
</FRAMESET>
</HTML>
Dac dorim s afim tot patru pagini ntr-o fereastr, dar dup modelul de
mai jos:
104
9.2. Elementul FRAMESET
Din exemplele prezentate mai jos, rezult c elementul FRAMESET are
rolul de a mpri fereastra n mai multe panouri (zone). Fiecare din zonele ferestrei
poate fi mprit n unul sau mai multe cadre cu ajutorul elementului FRAME.
Sintaxa elementului FRAMESET este:
<FRAMESET atribute> .. </FRAMESET>
| |
|
<HTML>
<HEAD>
</HEAD>
<FRAMESET rows="20%, 80%" cols="40%, *" frameborder="1" border="5"
bordercolor="blue">
<FRAME src="univsh.html" marginheight="30" marginwidth="30"
scrolling="no">
<FRAME src="univbuc.html" scrolling="no">
<FRAME src= "c:/carte_web/univsh.jpg" scrolling="no">
<FRAME src="c:/carte_web/facmat.jpg" noresize>
</FRAMESET>
</HTML>
107
Figura 9. 5. Atributul FRAME cu atribute
108
la adresele date de legturi, codul HTML care realizeaz acest obiectiv este dat
mai jos.
<HTML>
<HEAD>
<TITLE> CADRE DESTINATIE</TITLE>
</HEAD>
<FRAMESET cols="40%, 60%" bordercolor="blue" border="5">
<FRAME src="C:\CARTE_WEB\CAP_WEB_8/ex_8_2.html" >
<FRAME src="C:\CARTE_WEB\univsh.jpg" name="listeU" >
</FRAMESET>
OBSERVAII!
Elementul IFRAME are aceleai atribute ca i elementul FRAME
ntr-o pagin Web se pot introduce oricte cadre interioare dorim
Atributul name este utilizat ca destinaii pentru legturi
Elementul IFRAME are i unele atribute ale lui IMG, cu aceleai
efecte: width, align (left, top, bottom, middle)
Un exemplu de CADRE interioare este prezentat mai jos:
<HTML>
<HEAD>
</HEAD>
<BODY>
<B> Acesta sunt florile preferate </B>
<P>
<IFRAME src="flori1.jpg" name="poze" bordercolor="red" align="middle"
110
width="300" height="200">
</IFRAME>
</P>
<A href="florit.jpg" target="poze"> trandafir </A><BR>
<A href="flori4.jpg" target="poze"> orhidee </A><BR>
<A href="flori5.jpg" target="poze"> diverse</A><BR>
</BODY>
</HTML>
111
10. FORMULARE
Dac dorim un fiier HTML care include grafic, fiecare imagine este
solicitat server-ului printr-un dialog i de aceea se ncarc nti sursa i apoi se
ncarc imaginile pe rnd.
Pentru codul HTML:
<HTML>
<HEAD>
</HEAD>
<BODY>
<A href= C:/TEST/tabele.html>tabele</A><BR>
<A href= C:/Windows/WEB/Wallpaper/peace.jpg>peace</A><BR>
<A href= D:/casa.jpg>casa_mea</A><BR>
<A href= http://www.unibuc.ro>Univ_Bucuresti</A>
</BODY>
</HTML>
112
Interaciunea dintre browser i server va fi de urmtoarea manier:
Doresc fiierul tabele.html
Iat fiierul tabele.html
Acum mai Doresc fiierul peace.jpg
Iat fiierul peace.jpg
Mai Doresc fiierul casa.jpg
Nu exist fiierul casa.jpg
Error 440 file not found
Doresc fiierul de la www.unibuc.ro
Iat fiierul www.unibuc.ro
Am evideniat aceast modalitate de lucru pentru a indica comportamentul
static al tehnologiei WWW, adic avem acces numai la resurse Internet statice.
n acest capitol vom trece la comportamentul dinamic al tehnologiei WWW.
n aceast manier de lucru cererea Doresc, adresat de browser server-ului, devine
cererea de tipul Doresc execuia programului i transmiterea rezultatelor.
Formularele induc un comportament dinamic, deoarece ele permit
utilizatorilor s introduc parametrii. Pentru analizarea acestor parametrii i
transmiterea rezultatelor browser-elor, se execut anumite aplicaii de programare a
server-elor, care decid cum va aciona server-ul ca rspuns la datele primite.
Mediul de programare de pe servere, prin intermediul crora se comunic cu
programele de navigare, este interfaa Common Gateway Interface (CGI). Lucrnd
n mediul CGI, ntr-un anumit program (ASP, Perl, Java Script, PHP etc.), se poate
nlocui o pagin WEB sau o imagine cu un program care efectueaz anumite
calcule, care caut ntr-o baz de date i apoi ntoarce utilizatorului rezultatele sub
form de date WEB. Aceste programe se mai numesc i scripturi CGI, cu sufixul
.cgi i pot fi invizibile pentru vizitatorii de pagini WEB (chiar este posibil s nu
se tie c anumite pagini sunt rezultatul execuiei unor scripturi).
n acest capitol nu se trateaz scrierea codului pentru scripturi CGI,
dar se vor prezenta soluii pentru a le aplica n crearea formularelor.
Formularele WEB sunt asemntoare cu formularele altor aplicaii (ca de
exemplu, cele din Word), au aceleai tipuri de cmpuri, dar au i unele caracteristici
proprii foarte utile. Formularele HTML permit utilizatorilor introducerea unor
informaii, transmiterea lor ctre server i ntoarcerea rezultatelor obinute prin execuia
unor programe de scriptare, inducnd astfel un comportament dinamic paginilor WEB.
Formularele sunt utilizate pentru transmiterea datelor ctre o aplicaie
client, server sau la o adresa de e-mail.
n continuare se vor prezenta multitudinea de marcaje pentru a realiza
formulare simple care pot conine una sau mai multe csue text, care pot introduce
text pe post de keywords (pentru motoarele de cutare) pn la formulare complexe
cu multe elemente care ofer faciliti utile de transmiteri de date.
113
10.1. Elementul FORM
Pentru a insera ntr-o pagin WEB un formular se folosete elementul
<FORM> cu urmtoarea sintax:
<FORM atribute>...</FORM>
Elementul FORM are urmtoarele caracteristici:
n interiorul unei pagini WEB pot exista mai multe blocuri <FORM>
...</FORM>
Blocurile <FORM>...</FORM> nu pot fi imbricate
Blocurile <FORM>...</FORM> pot s aib un atribut name=nume,
unde valoarea nume este numele de identificare a formularului. Numele
nu este transmis server-ului, dect printr-o operaie ascuns, cum se va
vedea mai departe
Unui formular nu i se asociaz stiluri, o eventual formatare a
elementelor unui formular se realizeaz cu elementele de formatare
fizic (<B>, <I>, <U>, <S>, <FONT>) sau de formatare logic (<P>,
<PRE>, <HR> etc.)
n interiorul unui bloc <FORM>...</FORM> elementele formularului se
definesc cu etichetele INPUT, TEXTAREA i SELECT, care vor fi
descrise n seciunile urmtoare
Fiecare element al unui formular poate avea un nume, care l
individualizeaz
Atributele elementului FORM
Deoarece elementul <FORM> este utilizat pe partea de client pentru citirea
datelor introduse de utilizator i pe partea server pentru scrierea rezultatelor din
aplicaiile de scriptare CGI, atunci lui i se asociaz anumite atribute pentru a
evidenia destinatarul datelor din formular, metoda utilizat n transmiterea datelor,
metoda de codificare a datelor i fereastra (dac se dorete a se schimba cea
implicit self ) n care apar rezultatele.
Atributele elementului FORM sunt:
Action
Method
Enctype
Target
Atributul ACTION
Atributul action=URL definete destinatarul datelor din formular. n
cazul n care acest atribut lipsete, destinatarul este pagina WEB.
URL-ul poate fi:
adresa URL a aplicaiei .cgi de destinaie, care urmeaz s prelucreze
datele, ca de exemplu:
http://www.itdgroup.com/scripts/test.asp
114
http://www.altavista.com/cgi-bin/query
http://www.yahoo.com/search
o adres de e-mail valid, pentru transmiterea datelor formularului, prin
intermediul protocolului mailto: ca de exemplu action = mailto:
rodicaniculescu@gmail.com
Atributul METHOD
Atributul method=metoda definete metoda de utilizare i transmiterea
datelor de la programul de navigare la server.
Exist dou valori posibile ale acestui atribut i anume: GET i POST.
method=GET se utilizeaz dac datele din formular se ataeaz la
adresa URL de destinaie prin sintaxa nume=valoare. n bara de
ADDRESS a browser-ului apare adresa URL, urmat de perechi de date
nume=valoare, separate prin simbolul &. De exemplu, dac avem
intrarea n formular <INPUT type=text name=nume> se va crea o
csu de text i dac n ea se tasteaz Popescu, atunci n bara de adrese
va aprea:
http://www.itdgroups/scripts/test.asp?&nume=Popescu.
Metoda GET de transmitere de date este implicit, adic, dac nu este
prezent atributul action n eticheta <FORM>, modul de transmitere a
datelor este GET.
method=POST datele din formular sunt transmise server-ului ntr-o
tranzacie separat, nu odat cu adresa URL. Din acest motiv n bara de
adrese a browser-ului apare adresa, fr elemente suplimentare la
sfrit, de tip nume=valoare. Folosind aceast metod, datele sunt
transmise la server nu toate odat, ci n flux. Din acest motiv metoda
post este indirect n cazul n care trebuie transmise cantiti mari de
informaii.
Atributul Enctype
Acest atribut definete metoda de codificare a datelor nainte ca ele s fie
transmise la server. Valorile acestui atribut pot fi:
aplication/x-www-form-urlencoded care este i valoarea implicit a
atributului i este folosit cu metoda GET n general. Aceast valoare
va fi detaliat n seciunea urmtoare (codificarea i transmiterea
datelor)
text/plain utilizat cu valoarea mailto:adresa_mail a atributului
ACTION, pentru trimiterea prin pot a datelor. Este asemntoare cu
valoarea de mai sus, cu excepia c spaiile albe nu sunt nlocuite cu
simbolul +
multiform/form-data utilizat ca metoda POST pentru inserarea pe
server (transmiterea fiierelor sau imaginilor pe server).
115
Atributul TARGET
Acest atribut se folosete n cazul n care se dorete ca formularul cu
rezultate s apar ntr-o fereastr nou a browser-ului. Despre valorile posibile ale
atributului am vorbit cnd au fost descrise cadrele i legturile. Valoarea implicit
este self, care are ca efect apariia rezultatelor n aceeai fereastr cu a browser-lui.
Codificarea datelor
nainte de a trimite date la server, browser-ul codific datele. Atunci cnd
se utilizeaz metoda GET, informaiile sunt transmise scriptului de pe server. Toate
informaiile sunt afiate codificat i sunt memorate n variabile de mediu QUERY-
STRING. Tehnica de codificare a datelor depinde de valoarea atributului enctype, a
etichetei <FORM>. n cazul valorii implicite application/x-www-form-
urlencoded, utilizat cu metoda implicit GET
datele sunt transmise sub forma nume=valoare separate prin simbolul &;
spaiile sunt nlocuite cu simbolul plus (+) pentru a le putea transmite n
siguran;
116
caracterele speciale, nonalfabetice sunt codificate cu ajutorul codului lor
ASCII n hexazecimal prefixat de simbolul % ca n tabelul de mai jos:
COD CARACTER
! %21
%22
# %23
$ %24
% %25
%26
%27
( %28
) %29
+ %2B
/ %2F
: %3A
= %3D
? %3F
\ %5C
CR %0A
LF %0D
Spaiu %20
TAB %09
NUME Ionescu
MAIL
http://www.ionescui@gmail.com
SEND
Tipul TEXT
Pentru a introduce un cmp de text cu ajutorul cruia se introduc
parametrii ntr-o pagin WEB se folosete atributul type al elementului <INPUT>
cu valoarea text, astfel <INPUT type=text>. Toate atributele elementului
118
<INPUT>, definite mai sus, cu excepia atributului CHECKED, pot fi asociate cu
tipul text, aa cum reiese din exemplul urmtor:
<HTML>
<HEAD></HEAD>
<BODY>
<FORM name="FTEXT">
<!...Destinaia este pagina, metoda implicita GET...>
<PRE> <B>NUME:</B>
<INPUT type="text" name="nume" size="20" maxlength="50">
<B>PRENUME:</B>
<INPUT type="text" name="pren" size="25">
<B>ADRESA E-MAIL:</B>
<INPUT type="text" name="email" readonly size="26"
value="rodicaniculescu@gmail.com">
<B>PAROLA:</B>
<INPUT type="text" name="parola" disabled value="secret">
</PRE>
</FORM>
</BODY>
</HTML>
119
atribute sunt prezente, se vor trimite date despre buton n perechea
nume=valoare
disabled dezactiveaz un buton de transmisie
ntr-un formular pot exista mai multe butoane de transmisie SUBMIT. n
acest caz butoanele de transmisie se vor diferenia prin folosirea atributului name i
prin atributul value, a crei valoare va fi scris pe buton.
Datele care se transmit sunt n funcie de butonul de transmisie, astfel:
Dac butonul nu are indicat valoarea, adic are valoarea implicit
Submit query, atunci el transmite date din formular, dar nu i despre
el
Dac butonul este numit, adic exist atributul value=text, atunci el
transmite date din formular, ct i despre el
Dac butonul este dezactivat atunci el nu transmite nimic
Nu se transmit dect valorile elementelor din formular, nu i despre
formular, adic numele formularului nu apare n datele de transmisie
Un exemplu ilustrativ despre butoane de transmisie este prezent mai jos,
completnd programul din figura 10.4. cu butoane de transmisie.
Se vor introduce dou butoane de transmisie, unul predefinit i altul numit
prin secvena urmtoare:
<INPUT type=submit>
<INPUT type=submitname=opteazvalue=GO>
Formularul va fi mbogit cu dou butoane:
120
Butonul de IMAGINE
Pentru transmiterea datelor se poate folosi butonul de imagine, n loc de
butonul de transmisie text. Pe butonul imagine apare imaginea n loc de text. Pentru
a crea un buton de imagine se folosete atributul type al elementului <INPUT> cu
valoarea image (type=image). Alte atribute ale elementului <INPUT>, care se
asociaz cu atributele type=image, sunt:
Src=URL prezint adresa URL a imaginii. Este un atribut
obligatoriu pentru acest tip
alt=text introduce un text, dac poza nu poate fi ncrcat
border=numr indic grosimea chenarului n pixeli. Dac
numrul=0, chenarul imaginii lipsete
align determin alinierea imaginii i poate avea valorile cunoscute:
left, right, center
name numele unui buton de imagine
Dac n exemplul din figura 10.5. se nlocuiete butonul de transmisie
predefinit (SUBMIT QUERY) cu un buton de imagine, atunci vom folosi tipul
image astfel:
<INPUT type=imagesrc=c:/windows/hlpglobe.gif name=img align =
center alt = comand border=0 >
Imaginea hlpglobe va fi inserat pe buton. Dac se execut clic pe butonul
imaginii vor fi transmise coordonatele punctului n care s-a executat clic mpreun
cu numele imaginii sub form de perechi: numeX=x&numeY=y
Se observ din exemplul de mai sus c datele sunt codificate dup valoarea
implicit a atributului enctype=application/x-www-form-urlencoded, adic
datele sunt trimise sub form de pereche nume=valoare.
n caseta ADDRESS va aprea:
user=guest&old=st&new1=r1234f&new2=r1234f
OBSERVAIE!
Pe lng butoanele de transmisie SUBMIT i IMAGE se mai poate crea un
buton generic, n care valoarea atributului type este button (type=button). Dar
pentru a aduga un comportament la un buton generic, se utilizeaz JavaScript sau
alt program de programare la client. Despre acest tip se va discuta n capitolele de
JavaScript. Utiliznd JavaScript se poate nlocui <INPUT> cu <BOTTON>
122
...</BOTTON>. Acest buton va avea aceleai atribute ca SUBMIT: type, name,
value etc.
Tipul HIDDEN (ascuns)
Tipul ascuns genereaz un element de formular, utiliznd valoarea hidden
a atributului type. Acest tip permite transmiterea de informaii fr ca utilizatorul s
le poat vedea. Acest element este folosit n cazul:
n care pagina este generat automat de un script CGI
pentru a aduga un identificator formularului, deoarece nu exist atribut
al elementului <FORM> care s transmit date despre el mpreun cu
celelalte date
Pentru tipul ascuns sunt obligatorii atributele name i value ale elementului
INPUT. Un exemplu de tipul ascuns este dat mai jos:
<HTML>
<HEAD></HEAD>
<BODY>
<FORM name="tranzitii">
<INPUT type="hidden" name="nume_form" value="tranz">
<INPUT type= "hidden" name="cump" value="450">
<INPUT type="hidden" nam="parola" value="abcde">
<INPUT type="text" name="ID" value="Introduceti date" size=30>
<P>
<INPUT type="submit" value="Trimite">
</FORM>
</BODY>
</HTML>
Browser-ul i va transmite datele codificate:
nume_form=tranz&cump=450&parola=abcde&ID=Introduceti+date
Se observ c datele din elemente ascunse sunt incluse n datele transmise
sub form nume=valoare.
123
Tipul CHECKBOX (caset de validare)
Acest tip de intrare asigur o caset de validare. Pentru a insera n formular
o caset de validare se folosete atributul type cu valoarea checkbox
(type =checkbox). ntr-un formular se pot introduce mai multe casete de validare,
dar numai casetele de validare bifate sunt transmise de ctre browser. Se poate ca
mai multe casete de validare s aib acelai nume. Atributele elementului
<INPUT> folosite de tipul checkbox, sunt: name, value i checked. Atributul
checked este utilizat n cazul n care dorim ca starea implicit a elementului caset
de validare s fie starea selectat.
Pentru exemplificare, considerm urmtorul cod HTML: (datele bifate vor
fi transmise n flux, dar nu vor fi vizibile n bara de adrese a browser-lui):
tip=unt&tip=brinza&box=send
<HTML><HEAD></HEAD>
<BODY>
<FORM name="cumparaturi" method="POST">
<UL> CUMPARATURI
<LI> UNT <INPUT type="checkbox" name="tip" value="unt" checked >
<LI> CASCAVAL <INPUT type="checkbox" name="tip" value=cascaval >
<LI> BRANZA <INPUT type="checkbox" name="tip" value= "branza">
</UL>
<PRE> <INPUT type="submit" name= "box" value="SEND"> </PRE>
</FORM>
</BODY>
</HTML>
Tipul RESET
Acest tip de intrare permite utilizatorului s tearg coninutul tuturor
cmpurilor formularului. Tipul de RESET se introduce n formular ca valoare a
atributului type, astfel <INPUT type=reset> i are ca efect inserarea unui buton (ca
i tipul submit sau image).
124
Atributele asociate tipului reset sunt: name, value i disabled cu
semnificaiile deja cunoscute.
Dac n exemplu din figura 10.9 se adaug eticheta
<INPUT type=reset name=terge value=reset
n formular, browser-ul va mai aduga un buton reset.
Tipul RADIO
Acest tip de intrare afieaz un buton cu interblocare gen radio. Dac mai
multe astfel de butoane au aceeai valoare a atributului name, ele sunt grupate
automat astfel nct un singur buton din grup s poat fi selectat. Butonul radio
este asemnator cu butonul de validare i are aceleai atribute. Pentru a insera un
buton radio ntr-un formular se folosete elementul <INPUT> al crui atribut type
are valoarea radio (type=radio). La un moment dat numai un buton radio din cele
din grup (atributul name trebuie s aib aceeai valoare pentru toate butoanele din
grup) poate fi selectat. Denumirea de buton radio vine de la stilul de afiare al
acestor elemente de ctre browser (ca nite butoane radio)
Datele transmise de browser pentru respectivul grup sunt:
dac se selecteaz un buton radio din grup valoarea efectiv care se
transmite serverului este valoarea atributului value i se transmite printr-o
pereche nume=valoare, unde nume i valoare sunt valorile atributelor
name i value
dac se selecteaz un buton radio i atributul value lipsete, atunci se
transmite valoarea implicit ON, astfel nume=ON, unde nume este
valoarea atributului name
dac nu este selectat niciun buton radio dintr-un grup, atunci browser-ul
nu transmite date referitoare de grupul respectiv
De remarcat faptul c textul alturat unui buton este irelevant pentru
programul de scriptare de pe server.
Vom exemplifica grupul de butoane radio prin urmtorul exemplu:
125
<HTML>
<HEAD></HEAD>
</BODY>
<B> Clasificarea studenilor la Cursul WEB</B>
<FORM name="clas" action="rodicaniculescu@hotmail.com" method="POST">
<PRE>
<B>NUME:</B><INPUT type= "text" name="nume" size=30>
<P><B>COD STUDENT:</B> <INPUT type="password" name="cod" size="8">
<HR>
<B>EXAMEN:</B> <INPUT type="text" name="ex" maxlength=20>
<HR>
</PRE>
<B><5</B>
<INPUT type="radio" name="categorie" value="rest"><B>[5-6]</B>
<INPUT type="radio" name="categorie" value="slab"><B>[7-8]</B>
<INPUT type="radio" name="categorie" value="bun" checked><B>
[9- 10]</B>
<INPUT type="radio" name="categorie" value="fbun">
<PRE>
<INPUT type= "submit" name= "trimite" value="SEND">
<INPUT type= "reset" name= "terge" value="RESET">
</PRE>
</FORM>
</BODY>
</HTML>
126
Tipul FILE
Acest tip de intrare ofer posibilitatea utilizatorului s transmit un fiier
programului pe server. Pentru a insera un fiier ntr-un formular se folosete
atributul type al elementului <INPUT> cu valoarea file (type=file).
Formularul va afia un cmp text pentru introducerea numelui fiierului i
un buton BROWSE pentru a selecta un fiier din calculator, n cazul n care nu se
cunoate calea fiierului. Se pot transmite orice tip de fiiere.
Acest tip (file) este dificil de programat pe server, iar Internet Explorer nu
permite lucrul cu tipul file.
Se pot ncrca mai multe fiiere cu ajutorul unui formular i pentru a le
distinge se folosete atributul name cu diferite valori pentru fiecare element
INPUT. n cazul folosirii acestui tip, atributul elementului <FORM> trebuie s fie:
action=URL url fiind adresa unui program de scriptare de pe server
(http://itdgroup.com/scripts/upload/asp)
method= POST (fiind volum mare de date, acesta nu poate fi transmis
prin metoda GET odat cu adresa URL)
enctype=muliform/form-data
127
off caracterele CR/LF sunt introduse de utilizator. n acest caz
apare i bara de defilare orizontal
hard textul trece automat la rnd nou, dar sunt transmise i
caracterele CR/LF inserate automat la trecere la alt rnd.
Pentru exemplificare relum exemplul din figura 10.11 i adugm o
caset text cu linii multiple cu ajutorul blocului:
<P>COMENTARII:
<TEXTAREA name=coment rows=5 cols=50 wrap=off
></TEXTAREA>
Formularul va avea adugat caseta text textarea:
131
Urmeaz trasarea zonelor care pot fi de diferite forme. Formatul fiierelor
.map i testarea hrilor la server depind de serverul pe care se lucreaz.
Unele servere permit s indicm un fiier aflat oriunde n sistem, altele
solicit ca aceste fiiere s se afle ntr-un director special de fiiere map, sau altele
nu permit lucrul cu astfel de fiiere.
Exist servere Web cunoscute ca CERN i NCSA. CERN este institutul
elveian, din care s-a desprins o echip condus de Sir Tim Berners Lee care a creat
spaiul World Wide Web, limbaje specializate, precum SVG (Scalable Vector
Graphics), SMILE (Synchronized Multimedia Integration Language) etc.
NCSA este Centrul Naional pentru Aplicaii de Super Calculatoare
(National Center for Super-Computers Applications) al Universitii din Illinois,
care a elaborat programul de navigare Web Mozaic.
Serverele NCSA folosesc, pentru fiierele.map, formatul:
forma/URL/coordonate, astfel : circle Bucuresti.html 100, 200, 100
n timp ce serverele CERN folosesc formatul forma/coordonate/URL, iar
coordonatele apar n perechi, astfel: rect (100,200), (200,300) Paris.html
132
Elementul <MAP> are un atribut obligatoriu name, care indic numele
hrii i care trebuie s fie acelai cu numele imaginii inserate.
<MAP name =copii>
Inserarea legturilor
Pentru inserarea legturilor se utilizeaz tag-ul <AREA atribute>. Pentru
fiecare legtur sau zon dorit se folosete un element AREA n interiorul
blocului <MAP></MAP>.
Elementul AREA va defini o zon din hart, zon pe care, dac se execut
un clic, se va ncrca o pagin sau o alt operaie.
Atributele elementului AREA sunt:
shape definete forma zonei respective i poate avea valorile:
rect sau rectangle pentru definirea unei zone dreptunghiulare
circ sau circle pentru definirea unei zone circulare
poly sau polygon pentru definirea unei zone poligonale
default pentru definirea zonelor la care nu sunt definite legturi
(Internet Explorer nu accept acest atribut. El a fost testat cu
browser-ul Mozilla FireFox)
href adresa URL a unei resurse Web sau locale pentru care a fost
creat o zon. Dac pentru o zon creat nu se dorete s se stabileasc
o legtur nu se folosete acest atribut sau se folosete nohref
coords indic coordonatele zonei respective
Se tie c orice imagine rasterizat este format din pixeli. Un pixel
este caracterizat de coordonatele sale (x,y), raportate la sistemul :
(0,0) X
Pentru fiecare form din cele enumerate mai sus valorile parametrului
shape sunt:
Rect coords=X1,Y1,X2,Y2 definesc coordonatele colului din stnga
sus ( X1,Y1) i ale colului din dreapta jos (X2,Y2) ale unui dreptunghi
(X1,Y1)
(X2Y2 )
133
CIRCLE coords=a,b,r definesc coordonatele centrului unui cerc,
respectiv raza cercului
R
(a,b)
(X2,Y2) (X3,Y3)
.
.
(Xn,Yn)
(X1,Y1)
134
135
Figura 11. 1. Hri de imagine
136
obinute. Programul se poate lua de pe Internet, este free i este asemntor
programului BITMAP (acesta din urm ns nu genereaz automat coordonatele,
ci numai le afieaz n bara de stare).
Paii care trebuie urmai pentru a mpri o imagine .gif sau .jpeg n zone sunt:
1. Se lanseaz programul MAP THIS, se apeleaz menu-ul FILE comanda
NEW, Okay. Va aprea o fereastr cu fiierele .gif i .jpeg.
pentru dreptunghi
pentru cerc
pentru poligon
138
Figura 11. 5. Lista zonelor
Cnd este selectat un element al listei va aprea zona corespunztoare,
selectat cu o alt culoare.
5. Dac se efectueaz dublu clic pe o imagine se deschide o fereastr, cu numele
zonei n care apare o caset pentru a trece adresa fiierului URL legtur.
139
<BODY>
<MAP NAME="facmat">
<!- #$-:Image Map file created by Map THIS! -->
<!- #$-:Map THIS! free image map editor by Todd C. Wilson -->
<!- #$-:Please do not edit lines starting with "#$" -->
<!- #$VERSION:1.30 -->
<!- #$DATE:Sat Jan 06 15:34:35 2007 -->
<!- #$PATH:C:\CARTE_WEB\CAP_WEB_11\ -->
<!- #$GIF:FACMAT.jpg -->
<AREA SHAPE=RECT COORDS="226,12,464,276"
HREF="http://www.fmi.unibuc.ro">
<AREA SHAPE=CIRCLE COORDS="536,173,74"
HREF="sala_calculatoare.html">
<AREA SHAPE=POLY
COORDS="170,18,16,167,167,309,221,265,215,33,170,18" HREF="istoric.doc">
</MAP></BODY>
La acest cod generat de MAP THIS se adaug tag-urile <HTML>,<HEAD>
</HEAD>, </HTML> i neaprat imaginea., astfel:
<IMG src=facmat.JPG usemap=#facmat
Executnd fiierul harta_facmat.html, browser-ul va afia:
140
Figura 11. 8. Fiierele legtur la hart
141
12. Faciliti suplimentare Multimedia
Conceptul multimedia este unul din cele mai tentante i moderne concepte
utilizate n lumea informaticii. Prin tehnologii multimedia se nelege totalitatea
modalitilor de creare, utilizare, stocare, regsire i difuzare a aplicaiilor din
medii multiple, precum text, grafic, imagine, sunet i animaie. Multimedia
semnific prezena simultan a multor astfel de medii ntr-un document (ca de
exemplu, o pagin web). Termenul de hipermedia desemneaz documentele
multimedia care cuprind hiperlegturi, acestea fiind modul uzual de existen a
documentelor multimedia pe spaiul Web.
Fiierele multimedia pot fi fiiere de:
Aplicaii, care sunt executate de sistemul de operare i au, n general,
extensia .exe, (ca de exemplu, programe de prelucrare grafic, de calcule
etc.) Unele aplicaii sunt independente (WORD, EXCEL, MAP THIS
etc.), iar alte aplicaii sunt dependente (ca de exemplu, controale
ActiveX, programe PLUG-IN etc.)
Date, folosite pentru stocarea datelor. Extensia acestor tipuri de fiiere
indic tipul datelor stocate i a aplicaiei, folosit pentru citirea, editarea
i tiprirea lor. Sistemul de operare al calculatorului stabilete o legtur
ntre fiierele de date i aplicaia care prelucreaz datele din fiier.
Pentru a constata dac un fiier este de aplicaie sau de date, se execut
clic pe butonul drept al mouse-ului i din meniul rapid se selecteaz
comanda Properties. n caseta Type of file a ferestrei va aprea:
12.2.2. ActiveX
Conceptul de obiecte sau componente ActiveX s-a dezvoltat pe baza
tehnologiei OLE (Object Linking and Embedding) a corporaiei Microsoft care
permite s inserm obiecte COM i alte aplicaii. Controalele ActiveX se pot insera
n aplicaii pentru a putea fi refolosite cu toate funcionalitile lor. Controalele
ActiveX funcioneaz ca o interfa, astfel codul inclus n pagina Web
interacioneaz cu controlul ActiveX, iar acesta interacioneaz direct cu programul
de navigare.
Prin aceast tehnologie aproape orice cod poate fi executat de la nivelul
programului de navigare, de la procesare de texte, la filme, animaie/video etc.
144
Fiecare control ActiveX se introduce n paginile Web cu ajutorul etichetei
<OBJECT> i cu parametrii specificai de eticheta <PARAM>, etichete care vor fi
descrise n seciunile urmtoare.
145
DESCRIERE CLASSID
button D7053240-CE69-11CD-A777-00DD01143C57
tabel 978C9E23-D480-11CE-Bf2D-00AA003f40D0
textfield 8BD21D10-EC42-11CE-9E0D-00AA006002f3
graphic 369303C2-D7AC-11d0-89D5-00A0C90833E6
calendar 8E27C92B-1264-101C-8A2F-040224009C02
avi 05589FA1-C356-11CE-BF01-00AA0055595A
excel 0002E510-0000-0000-C000-000000000046
Iexplorer 0002DF01-0000-0000-0000-000000000046
ClipArt Gallery 00030026-0000-0000-C000-000000000046
Java 3EFB1800-C2A1-11CF-960C-0080C7C2BA87
146
Figura 12. 1. Aflarea codului GUID pentru controlul A
147
anumite metode care sunt descrise n funcie de tipul su). Forma tag-ului
<PARAM> este: <PARAM name = nume value =valoare>.
Am artat c se pot insera fiiere, imagini, aplicaii, pagini i ActiveX cu
ajutorul etichetei <OBJECT>, care poate avea anumii parametri n funcie de
obiectul inserat.
Inserarea imaginilor
n ultimul timp, exist tendina de a insera n pagini imagini cu ajutorul
etichetei <OBJECT> n loc de eticheta <IMG>, astfel:
<HTML>
<HEAD>
</HEAD>
<BODY>
<CENTER> Inserarea imaginilor</CENTER>
<TABLE cellspacing="2">
<TR>
<TD><OBJECT data="flori5.jpg" width=200 height=200></OBJECT>
<TD> <OBJECT data="Water lilies.jpg" width=200 height=250></OBJECT>
148
</TR>
</TABLE>
</BODY>
</HTML>
Inserarea miniaplicaiilor
Miniaplicaiile pot fi inserate n pagini HTML, folosind elementul
<applet> i <OBJECT>.
n acest capitol se va folosi elementul <OBJECT> pentru a insera unele
aplicaii ntr-o pagin. Browser-ul Netscape nu accept inserarea miniaplicaiilor
cu ajutorul elementului OBJECT, iar Internet Explorer avem, de exemplu:
<OBJECT codetype="application/msword>
<PARAM name="text" value="Bine ati venit in Word">
</OBJECT>
Inserarea Controalelor ActiveX
Presupunem c dorim s redm un fiier .avi sau un fiier .mpeg. Pentru
aceasta este nevoie de inserarea programului Windows Media Player. Cu acest
program putem reda fiiere: .avi, .mpeg,,mpg, .wmv, .wma, aa cum reiese din
exemplul de mai jos.
<HTML>
<HEAD>
</HEAD>
<BODY>
<OBJECT id="WMPlayer" width="320" height="240" classid="clsid:05589FA1-
C356-11CE-BF01-00AA0055595A">
<PARAM name="src" value="sample.avi">
</OBJECT> <BR>
<OBJECT id="buton" width=100 height=50 classid="clsid:D7053240-CE69-
11CD-A777-00DD01143C57">
<PARAM name="caption" value="buton">
149
</OBJECT> <BR>
<OBJECT id="WMPlayer" width =320 height=240
classid=clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6>
<PARAM name="url" value="d:\poze\aniversare_2006\MVI_8297.AVI">
</OBJECT >
</BODY>
</HTML>
152
Figura 12. 6. Elementul MARQUEE cu atribute
153
154
PARTEA A II-A
CSS
155
156
13. CSS-Cascading Style Sheets
(Foi de stil n cascad)
157
title definete o informaie pentru un element. Valorile sunt iruri de
caractere scrise ntre ghilimele, care apar ntr-un chenar galben, atunci
cnd suntem cu mouse-ul deasupra elementului
dir indic direcia de afiare a coninutului elementului. Valorile
posibile sunt: ltr-de la stnga la dreapta i rtl- de la dreapta la
stnga
lang definete limba n care va aprea scris coninutul elementului.
Valorile posibile sunt maxim 5 caractere ntre ghilimele, de exemplu
en, en-us
id definete un identificator unic pentru un element (a fost folosit n
capitolul precedent ca atribut al elementului OBJECT)
class definete o clas a elementului. Valorile posibile sunt liste de
unul sau mai muli identificatori separai prin spaiu, de exemplu
class=nume1,.....,numen
160
Am menionat mai sus faptul c exist un selector universal, indicat prin
simbolul * i care corespunde oricrui element.
Un exemplu de foi de stil n pagin este redat mai jos:
<HTML>
<HEAD>
<STYLE>
P{font-size:20pt;font-weight:light;color:red;text-align:center:}
*{font-style:italic;}
OL{font-size:20pt;background:cyan;}
LI{font-size:15pt;color:blue;}
A{text-decoration:none;color:grown;}
</STYLE>
</HEAD>
<BODY>
<P><B>List </B>este un mod de organizare in care mai multe enunuri
pot fi numerotate, marcate sau definite intr-un anumit fel .
<OL>n HTML exist trei tipuri de liste:
<LI>Liste ordonate(Ordered list - OL)
<LI>Liste neodornate(Unordered list - UL)
<LI>Liste de definiie(Definiion list - DL)
</OL>
Aceasta este o legatura la lista universitailor particulare acreditate,
de pe site-ul MEC
<A href="http://www.edu.ro/index.php/articles/3880"> USH </A>
</BODY></HTML>
161
13.3. Foi de stil externe
n seciunea precedent am definit stiluri pentru selectorii de tip (elemente
HTML) dintr-un fiier HTML. n aceast seciune se arat cum se pot extinde
stilurile la toate paginile Web de pe server-ul utilizat.
Dac s-ar copia foaia de stil din pagina n care a fost definit n mai multe
pagini n care dorim s apar foaia de stil respectiv, ar aprea un inconvenient,
constnd n faptul c, atunci cnd se dorete o modificare de stil, modificarea
respectiv trebuie fcut n toate paginile n care a fost copiat foia de stil.
Soluia de nlturare a acestui inconvenient const n executarea
urmtorilor pai:
se creeaz foaia de stil ntr-un fiier extern, care se salveaz cu extensia .css
se leag acest fiier de orice pagin Web care dorim s aib acelai
aspect. Pentru a crea o legtur ntre o pagin Web i un fiier foaie de
stil extern (.css), se folosete tagul <LINK> care se scrie n blocul de
antet (<HEAD>...</HEAD>) al respectivei pagini.
Elementul LINK
Aa cum am menionat, legtura dintre o pagin i un fiier .css, se
realizeaz cu elementul LINK.
Sunt obligatorii trei atribute ale elementului LINK:
type indic browser-ului limbajul n care este scris codul i are
valoarea unic text/css
rel definete tipul de fiier .css i are valoarea stylesheet
hre f- are ca valoare adresa URL a fiierului foaie de stil extern (.css),
care conine foaia de stil care se leag.
Pentru exemplificare, considerm foaia de stil creat n exemplu 13.2 pe
care o copiem ntr-un fiier nou Notepad i pe care l salvm cu extensia .css astfel:
stil-extern.css. n partea de cod a paginii se nlocuiete blocul <STYLE> ...
</STYLE> din antet cu tagul <LINK> plasat tot n antet.
Codul fiierului stil-extern.css este:
P{font-size:20pt;font-weight:light;color:red;text-align:center;}
*{font-style:italic;}
OL{font-size:20pt;background:cyan;}
LI{font-size:15pt;color:blue}
A{text-decoration:none; color:BlueViolet;}
164
13.6. Stiluri pentru diferii selectori
Stilurile se pot aplica selectorilor de tip (elemente HTML), aa cum s-a
procedat n seciunile precedente, sau altor selectori, care sunt elemente definite de
programatorii paginii Web, sau sunt elemente predefinite.
n aceast seciune, vor fi definii i exemplificai n subseciuni separate:
selectorii definii ID i CLASS
selectorii predefinii pseudo-class i pseudo-element
13.6.1 Selectorul ID
n seciunea 13.2 s-a menionat faptul c aproape orice marcaj HTML
poate avea atributul ID, care are ca valoare un identificator unic pentru ntreaga
pagin. Sintaxa atributului este ID=nume_id. Se pot crea stiluri pentru un
identificator, declarnd un selector ID care are sintaxa nume_id precedat de
simbolul # (ca la o definire de ancor a se vedea capitolul 7), astfel
#nume_id{bloc de specificaii stil}.
n exemplul urmtor este exemplificat utilizarea selectorului ID.
<HTML>
<HEAD>
<STYLE>
#PAR{background:red;font-style:italic}
</STYLE>
</HEAD>
<P id=par>Un text cu stil cursiv fundal rosu
<P>Un text obisnuit
</Body>
</HTML>
165
13.6.2. Selectorul CLASS
CSS poate defini i clase de elemente. Ca i atributul id, i atributul class
este acceptat de majoritatea elementelor HTML. Se pot utiliza clase n definirea
unui stil, sintaxa selectorului CLASS fiind numele clasei precedat de simbolul
punct (.), astfel: .nume-clas{bloc de declaraii}
Atributul class are sintaxa binecunoscut a atributelor elementelor HTML:
class=nume-clas
n cazul n care se doresc mai multe stiluri de clas (c1{ }, c2{ },......cn{ })
atunci valoarea atributului class poate s fie o list de nume-clas, separate prin
spaii (class=c1 c2 cn), aa cum rezult din exemplul urmtor:
<HTML><HEAD><STYLE>
.cod{background:cyan;font-family:courier;}
.note{text-transform:uppercase;color:red;text-decoration:none;}
</STYLE></HEAD><BODY>
<P>Acesta este un paragraf fara stil
<P class="cod">Acesta este un paragraf scris cu stilul cod (fontul courier
pe fundal cyan)
<P class="note">Acesta este un paragraf scris cu stilul (culoarea rosie i
litere mari)
<P class="cod note">Acesta este un paragraf de observaii scris cu
stilurile celor dou clase
<P>Codul<B class="cod"> HTML</B> este executat de browser-ul
<I class="note">nternet Explorer</I></P>
<A href="Universitati.html"class="note">
Universitati-(o legatura)</A>
</BODY> </HTML>
167
Figura 13. 8. Selectori id i class
13.6.3 Pseudo-clase
Pseudo-clasele ajut la specificarea unor proprieti speciale ale unor
elemente. Ele sunt predefinite i nu este permis redenumirea lor. Sintaxa prin care
se pot adresa este: element:pseudoclas{bloc de declaraii}
unde element poate fi:
un element HTML de exemplu, P
un identificator id i atunci scriem elementul ca un selector id, #nume
o clas i atunci scriem elementul ca un selector de clas, .nume-clas
Pseudo-clasa first-child
Aceast pseudo-clas aplic stilul definit primului copil al elementului
printe i are sintaxa: element:first-child{...}.
n exemplul de mai jos formatm primul element (copil) dintr-o list
(printe) i prima linie (copil) dintr-un tabel (printe).
<HTML> <HEAD> <STYLE>
LI:first-child{color:blue;text-size:20pt;background:yellow}
TR:first-child{font-style:italic;font-
weight:bold;background:cyan;color:red}
</STYLE> </HEAD> <BODY>
<UL>Valorile atributului color:
<LI> nume-culoare(red, blue, etc.)
<LI>codul RGB in hexazecimal, sub forma #RRGGFF
<LI>codul RGB zecimal, de exemplu RGB(0,0,255) pentru albastru
</UL>
<TABLE border=2 bordercolor=green>
168
<TR><TD>A11<TD>A12
<TR><TD>A21<TD>A22
</TABLE>
</BODY> </HTML>
Pseudo-clase Legturi
n capitolul 7 am arta faptul c bold, subliniat n HTML, exist trei stri
pentru o legtur (activ, vizitat, nevizitat), iar pentru a le schimba culorile
predefinite (rosu, purple, bleu) se folosesc atributele elementului BODY: active,
vlink, respectiv link, care au valori nume sau cod de culoare.
n CSS o legtur poate fi n cinci stri ce corespund la cinci pseudo-clase:
active pentru o legtur activ, care are culoarea implicit
visited pentru o legtur ce a fost vizitat i care are culoarea
implicit purple
link pentru legturile care nu au fost vizitate i care au culoarea
implicit blue
hover o legtur deasupra creia se afl plasat cursorul mouse-ului
focus pentru o legtur selectat, care se poate activa cu ENTER
Prin CSS se pot modifica culorile legturilor i formatarea textului, aa
cum rezult din exemplul de mai jos.
<HTML> <HEAD>
<TITLE>STIL LEGATURI</TITLE>
<STYLE>
A:link{color:green;font-style:italic;}
A:visited{color:magenta;font-wight:bold;text-decoration:none}
A:hover{color:cyan;background:black;}
A:active{color:red;text-decoration:none;}
A:focus{background:yellow;color:green;}
</STYLE></HEAD>
<BODY>
<A href="Fig 13.1.html" >Exemplu stil in-line</A><BR>
<A href="Fig 13.2.html" >Exemplu stil-pagina</A><BR>
169
<A href="Fig 13.3.html" >Exemplu stil-extern</A><BR>
<A href="Fig 13.4.html">Exemplu stil cascada</A><BR>
<A href="Fig 13.5.html">Exemplu stil clasa</A><BR>
</BODY></HTML>
13.6.4 Pseudo-element
Pseudo-elementele sunt un fel de pseudo-clase, care permit s se schimbe
stilul pentru subpri ale unui element (de exemplu, prima liter dintr-un paragraf).
Se seteaz stilul ca la pseudo-clase: element:pseudo-element{bloc de declaraii}.
Vom exemplifica pentru pseudo-elementele:
first-letter - care permite s se formateze prima liter dintr-un bloc de text
first-line - care permite s se aplice un stil pentru prima linie dintr-un
bloc de text
Dup cum tim, exist urmtoarele blocuri de text:
paragraf <P>......</P>
paragraf preformatat <PRE>......</PRE>
de diviziune <DIV>.......</DIV>
de centrare text < CENTER>..</CENTER>
n exemplul urmtor se stabilete un stil pentru pseudo-elementele i
blocurile menionate mai sus.
<HTML> <HEAD> <STYLE>
P.PAR:first-letter{font-style:italic;font-size:30pt;}
CENTER:first-letter{color:#C0C0C0;font-size:30pt;}
DIV:first-line{text-transform:uppercase;color:"darkcyan";}
P.PAR:first-line{text-decoration:underline;text-
height:24pt;color=red;}
170
</STYLE> </HEAD> <BODY>
<P class="par">Paragraf care are doua stiluri pseudo-elemente:first-letter si first-
line<BR>Se observa faptul ca prima litera a mostenit si stilul primei linii(subliniat)
<CENTER>Acesta este un bloc centart<BR>
Are un stil pentru prima litera: culoarea silver, dimensiuni 30pt
</CENTER>
<DIV>Acesta este un bloc de diviziune<BR>
Pentru el s-a stabilit stilul first-line.Prima linie va fi scrisa cu culoarea DarkCyan si
cu litere mari
</DIV></BODY></HTML>
172
14. Clase de proprieti n CSS
174
lungimi n: mm / cm / in(inci) / pc(pica) / px(pixeli) / pt(puncte) /
em(relativ la font-style. Un spaiu em este cea mai lat liter a unui
FONT, de exemplu M), ex(relativ la cel mai nalt caracter al fontului)
Procente(relativ la valoarea printelui, de exemplu: 50%, -20%)
Cea mai folosit este valoarea exprimat n puncte (pt).
Un font de 10pt msoar 10 pt de la cota superioar a unei litere majuscule
sau ascendente (H sau h), pn la cota inferioar a unei litere descendente (g,p).
Relaia dintre diferite lungimi este:
1 n=2.56 cm = 72 pt = 6 pc de unde rezult:
1 pt = 0.035 cm i 1 pc = 0.42 cm
Proprietatea font-family are rolul de a stabili un set de fonturi cu care
vor fi scrise caracterele. Nu se tie dac un vizitator al unei pagini are pe calculator
un anumit font, motiv pentru care se consider mai multe familii de fonturi.
Valorile posibile sunt:
nume de familii, ca de exemplu Arial, Courier, Helvetica etc. Dac o
familie este format din mai multe cuvinte, atunci acestea sunt scrise
ntre ghilimele, de exemplu Times New Roman
nume generic de fonturi, care mai degrab specific un stil dect o
familie de fonturi. Numele generice sunt cuvinte cheie i nu se scriu
ntre ghilimele. Aceste fonturi sunt: serif, sans-serif, cursive, monospace
i fantasy. Este indicat ca ultimul font din list s fie unul generic.
Browser-ul va folosi dintr-o mulime de fonturi primul font pe care l
recunoate, de exemplu:
P {font-family:Courier New, Arial, monospace}
Proprietatea font grupeaz proprietile de mai sus. Valorile posibile
sunt valorile proprietilor de mai sus, n ordinea:
<font-style>
<font-variant>
<font-weight>
<font-size>
<font-family>
Un exemplu pentru proprietile de font este dat mai jos:
<HTML><HEAD>
<STYLE>
OL {font:italic small-caps bold 18pt Courier New serif;}
LI{font-style:italic; font-size:15pt;font-family:Arial, serif;}
SPAN { font-variant:small-caps; color:red;font-size:1.5 em}
P{ font:italic small-caps bolder 15pt Garamond serif;}
TABLE{font-variant:small-caps;font-size:small;font-weight:lighter;
background:yellow}
</STYLE></HEAD>
<BODY>
<P> Utilizarea proprietilor pentru fonturi </P>
175
<OL type=I>
<LI><Font face=Arial size=+1 color=blue>Tehnici de programare </Font>
<UL>
<LI> Backtracking
<LI> Divide et impera
<LI> Greedy
<LI> Programare dinamic
</UL>
<LI> <Font face=Arial size=+1 color=blue> Arbori</Font>
<UL>
<LI> Arbori Binari</li>
<LI> Arbori Oarecare</li>
<LI> Arbori de sortare</li>
</UL>
</OL>
<TABLE border=3>
<TR><TD>Dac ai ntrebari
<TR><TD> <A href=mailto:rodicaniculescu@gmail.com> Scrie-mi la adresa
rniculescu@gmail.com</A>
</TABLE>
<P> Studentii care doresc <SPAN>Consultatii,</SPAN> pot s-mi scrie </P>
</BODY></HTML>
176
14.3. Proprieti pentru TEXT
CSS are mai multe proprieti pentru TEXT. O parte dintre acestea vor fi
descrise mai jos.
Proprietatea text-align se folosete pentru alinierea textului. Valori
posibile sunt:
left
right
center
justify
Proprietatea text-decoration permite introducerea unor decoraiuni
textului: Valorile posibile sunt:
none fr decoraiune
underline subliniat
overline barat
line-through tierea cu o linie
blink sclipire
177
OBSERVAIE!
Pentru redarea unui text aa cum este scris se poate folosi marcajul
<PRE>...</PRE>, dar, n acest caz, textul este monospaiat, aa cum s-a precizat n
capitolul 3 elemente de formatare.
Un exemplu de utilizare a acestor proprieti este dat n continuare.
<HTML> <HEAD>
<STYLE>
P {white-space:all; letter-spacing:1mm; word-spacing:2 mm; text-
transform:capitalize;}
DIV{text-indent:0.5 in; text-decoration:underline; white-space:nowrap;
color:blue}
SPAN {text-transform:uppercase;text-decoration:underline;color:red}
</STYLE> </HEAD>
<BODY>
<P>Agenda telefonica<br>
Ionescu Alin 0723553279<br>
Ionescu Dan 0742897618<br>
Diaconescu Ion 0745294738<br>
Popescu Ana 073431489 </P>
<DIV>Acesta este un text indentat la 0.5 in, subliniat i scris pe un rand. Dac
doriti s-l vizualizai folositi. <SPAN>Bara de scroll</SPAN></DIV>
</BODY> </HTML>
179
14.4. Proprieti pentru padding
S-a artat n introducere c orice element HTML poate fi privit ca un box
cu prile: content, padding, border i margin.
n seciunea 2 i 3 s-a descris o parte din proprietile pentru partea de
coninut (font i text). n aceast seciune se vor descrie proprietile pentru
padding.
Paddingul (estura) este zona dintre coninut i bordur i are doar
caracteristica size. Exist cinci proprieti pentru a indica paddingul unui element,
i anume:
padding-top
padding-right
padding-bottom
padding-left
padding combinaie a celor de sus, valorile fiind date n ordinea (top,
right, bottom, left)
Valorile posibile sunt:
o lime exprim limea zonei de textur i este dat n: in, cm, mm,
px, pt, pc, em
procent exprim limea n procente relativ la printe
OBSERVAII:
1. Proprietile padding-top, padding-right, padding-left, padding-bottom
accept numai o valoare
2. Proprietatea padding, care este o combinaie a celor de mai sus, poate
accepta 1, 2, 3 sau 4 valori. n tabelul de mai jos se d lista de valori i
ordinea de atribuire a lor pentru cele patru proprieti de padding (top,
right, bottom i left).
Nr Valori Atribuiri
1 v1 Top=right=bottom=left=v1
2 v1 v2 Right=left=v1, top=bottom=v2
3 v1 v2 v3 Top=v1 left=right=v2 bottom=v3
4 v1 v2 v3 v4 Top=v1 right=v2 bottom=v3 left=v4
Figura 14. 5. Ordinea de atribuire a valorilor
181
14.5. Proprieti pentru bordur
Exist cinci proprieti pentru bordur:
border-top bordura de sus
border-right bordura dreapta
border-bottom bordura de jos
border-left bordura din stnga
border combinaie a celor de mai sus
Pentru fiecare proprietate BORDER se pot stabili trei caracteristici:
width grosimea bordurii
color culoarea bordurii
style modelul bordurii
De exemplu, pentru proprietatea border-top avem proprietile:
border-top-width
border-top-color
border-top-style
Valorile posibile pentru width sunt:
o lime ce reprezint limea fix a bordurii sau a unei pri din ea
thin (subire) /medium (mediu) / thick (gros)
Valorile posibile pentru color sunt:
un nume de culoare
un cod RGB
Valorile posibile pentru style sunt:
None / hidden / dotted / solid / double / groove / inset / outset / ridge /
dashed / inherit.
Exemplificm mai jos proprietatea border cu cele trei caracteristici: width,
color, style.
<HTML>
<HEAD>
<STYLE>
td {background:yellow; color:darkcyan;}
.bt {border-top-style:dashed; border-top-width:thick; border-top-color:blue;}
.br{border-right-style:groove;border-right-width:thin;border-right-
color:purple;}
.bb{border-bottom-style:ridge;border-bottom-width:medium; border-bottom-
color:lime;}
.bl{border-left-style:solid;border-left-width:10pt; border-left-color:magenta;}
.bord{border-style:outset; border-width:0.5 in; border-color:red;}
</STYLE>
</HEAD>
<BODY>
182
<PRE>
<PRE>
<BUTTON class="bt">Bordura superioara</BUTTON>
<BUTTON class="br">Bordura dreapta</BUTTON> <BR>
<BUTTON class="bb">Bordura inferioara</BUTTON>
<BUTTON class="bl">Bordura stanga </BUTTON>
</PRE>
<TABLE class="bord">
<TR><TD>a11<TD>a12
<TR><TD>a21<TD>a22
</TABLE>
</BODY>
</HTML>
183
<HTML>
<HEAD>
<STYLE>
H2 {border:5pt inset coral; margin:2mm;}
DIV{border:0.07in dotted green; color:magenta;}
</STYLE>
</HEAD>
<BODY>
<H2>Proprieti de <SPAN style="text-decoration:underline;font-weight:bold;">
Borduri </SPAN> </H2>
<DIV>Bordura are trei caracteristici: grosime, stil i culoare</DIV>
</BODY>
</HTML>
<HTML>
<HEAD>
<STYLE>
H3 {border-width:8pt 7pt 9pt 6pt;
184
border-color:red green blue;
border-style:solid inset outset;}
!*pentru grosimi avem 4 valori (sus, dreapta, jos, stnga)
pentru culori i stiluri avem 3 valori (sus stnga-dreapta jos)
</STYLE>
</HEAD>
<BODY>
<H3>List de valori pentru borduri</H3>
<UL>
<LI>grosime <LI>culoare <LI>stil
</UL>
</BODY </HTML>
185
n cazul n care folosim proprietatea margin, valoarea poate fi o list de
1,2,3,4 valori cu semnificaia din tabelul 14.5
Proprietatea margin este exemplificat mai jos:
<HTML>
<HEAD>
<STYLE>
blockquote {margin-top:0.01in;margin-right:20%;margin-
bottom:2ex;margin-left:10%;}
P{margin: -20pt 10ex 10px; color:SandyBrown ;}
DIV{margin:30 pt; color:red;}
SPAN{margin 100px 50px; background:cyan;}
</STYLE>
<BODY>
<BLOCKQUOTE>Acest bloc este un citat <SPAN>Omul care nu are
nimic de pierdut este cel mai greu de invins<BR>
(Goethe)</SPAN>BLOCKQUOTE>
<DIV>Acesta e un bloc de diviziune</DIV>
</BODY>
</HTML>
<HTML>
<HEAD>
<STYLE>
P{font-style:italic; text-transform:uppercase; color:yellow;}
BODY {background-color:red; background-image: URL(bliss.bmp);}
</STYLE>
<BODY>
<P>Acesta este un exemplu de utilizare a proprietilor de culoare</P>
</BODY>
</HTML>
187
Figura 14. 11. Proprieti de culoare
<HTML>
<HEAD>
<STYLE>
body{background-color:yellow;background-image: URL(ush.jpg);}
div {background-attachment:fixed; width:300px; height:200px;}
</STYLE>
<BODY>
<DIV>Acesta este un text despre Universitatea Spiru Haret.</DIV>
</BODY>
</HTML>
188
Figura 14. 12. Proprietatea attachment
189
Exemplificarea acestei proprieti se face prin codul de mai jos.
<HTML>
<HEAD>
<STYLE>
BODY * {background-image:url(im4.gif);}
</STYLE>
</HEAD>
<BODY >
<H2 style="color:darkblue;"> Proprietatea background-repeat </H2>
<UL style="line-height:20pt; background-image:url(peace.jpg); background-
repeat: no-repeat;color:darkblue"> Proprietati de culoare
<LI style="background-image:url(im5.gif); background-repeat : repeat-
x;"> color
<LI style="background-image:url(im2.gif); background-repeat : repeat">
background-color
<LI style="background-image:url(bullet.gif); background-repeat : repeat-
y;color:"> background-image
</UL>
</BODY>
</HTML>
191
Proprietatea background este o combinaie a proprietilor de culoare
i imagine de fundal. Valoarea acestei proprieti este o list de valori a
proprietilor de mai sus, separate prin spaiu i avnd urmtoarea ordine.
Background-attachments, background-color, background-image,
background- position i background-repeat.
Exemplificarea acestei proprieti se face prin codul de mai jos.
<HTML><HEAD></HEAD><BODY>
<H2 style="background:fixed yellow url(im2.gif) 300px 2cm repeat-y;">
Proprietatea background</H2>
<UL style="background:scroll cyan url(im7.bmp) no-repeat; line-
height:20pt;font-size:large;font-weight:900">
Ordinea proprietatilor lui background
<LI style= "background:scroll beige url(bullet.gif) 30% repeat-x; ">
background-attachment
<Li style= "background:scroll bisque url(im5.gif) 30% repeat;">
background-color
<LI style= "background:scroll coral url(tips.gif) 100% repeat-y; ">
background-image
<LI style= "background:scroll beige url(im4.gif) 30% repeat-x;">
background-position
<LI style= "background:scroll url(im6.gif) 100% repeat-y;">
background-repeat
</UL> </BODY> </HTML>
192
15. Poziionarea elementelor n pagin n CSS
195
196
HTML
HEAD BODY
FRUNZ B I P DIV
TR TR B LI LI LI TR TR
TD TD TD TD TD TD TD TD
197
15.2. Proprietatea Display
Css ofer posibilitatea de a schimba modul de afiare a tipului elementelor
(bloc i inline), prin utilizarea proprietii display.
Valorile posibile ale proprietii display sunt:
inline elementele se afieaz n continuarea rndului curent
block elementele se afieaz la nceput de rnd
none elementul nu se va afia
Dac se dorete ca toate elementele din exemplul 15.1 s fie afiate inline,
se va scrie urmtoarea foaia de stil:
*{display:inline}
iar browser-ul le va afia aa cum se observ n figura 15.3.
198
Figura 15. 3. Proprietatea Display:inline
Se poate ca numai anumitor elemente s li se schimbe modul de afiare,de
exemplu, elementul de bloc TABEL dorim s fie afiat inline i elementul de text B s fie
afiat la nivel de bloc. n acest caz, adugm n exemplul 15.1, urmtoarele linii de cod :
Table {display:inline}
B {display:block}
199
15.3. Elemente flotante
Modul normal de aezare a elementelor n pagin poate fi modificat cu
ajutorul obiectelor flotante i poziionate.
Obiectele flotante se definesc cu ajutorul proprietii float care se poate
ataa la orice element. Valorile posibile sunt:
none caseta nu e flotant
right caset flotant spre dreapta
left caset flotant spre stnga
OBSERVAIE!
Obiectele flotante se pot defini:
cu atributul align, pentru elementele HTML care-l accept (de exemplu
<img align=left>)
cu CSS pentru elementele care nu accept atributul align (de exemplu,
OL, UL etc.)
Dac n exemplul din figura 15.1 adugm liniile de mai jos la foaia de stil
OL{float:left}
i n corpul programului nlocuim elementul TABLE care definete primul tabel, cu
<TABEL style=float:right>, iar elementul IMG, cu <IMG align=left>, atunci
va aprea imaginea i primul tabel aliniat la dreapta i lista aliniat la stnga, ca n
figura de mai jos:
200
Browser-ul execut urmtorii pai la ntlnirea unui element flotant:
fluxul normal de aezare n pagin este ntrerupt
elementul flotant este afiat n poziia indicat (stnga, dreapta),
ncepnd din rndul urmtor
se afieaz elementele din flux de la punctul n care a fost ntrerupt,
ncepnd cu spaiul rmas liber de deplasarea obiectului flotant
casetele elementelor flotante se pot suprapune peste casetele din fluxul
normal, dar nu i coninutul lor
Proprietatea CLEAR
Dup cum se observ n exemplul din figura 15.5, al doilea tablou apare n
spaiul rmas liber. Dac se dorete ca un element de bloc s apar afiat pe rnd
nou, dup aplicarea proprietii float, se folosete proprietatea clear.
Valorile posibile sunt:
none nu se deplaseaz elementul
left partea din stnga elementului este liber
right partea din dreapta elementului este liber
both ambele pari (stnga i dreapta) vor fi libere
Dac n figura 15.5, n al doilea tabel adugm atributul style=clear:left
atunci tabelul va fi afiat pe rnd nou, cum reiese din figura:
201
15.4. Elemente poziionate
CSS ofer posibilitatea de a schimba fluxul normal de aezare a
elementelor n pagin i cu ajutorul proprietii POSITION, care poate fi ataat
oricrui element n foaia de stil sau ca valoare a atributului STYLE.
Valorile posibile sunt:
static aezarea se face n flux normal (valoare implicit)
absolute elementul iese din fluxul normal i este afiat la o distan
relativ fa de primul printe poziionat
relative elementul rmne, n fluxul normal, dar este poziionat la o
distan relativ cu poziia sa normal (elementul se poate suprapune
peste altele)
fixed elementul iese din fluxul normal i e afiat ntr-o zon vizibil. El
rmne fix cnd se deruleaz pagina cu barele de defilare
Marginile casetei corespunztoare elementului poziionat sunt definite de
proprietiile:
top
right
bottom
left
Valorile posibile sunt:
o lungime dat n: cm, mm , px, pt, em
un procent relativ la printe
Poziionarea absolut
Poziionarea absolut a unui element este relativ la primul printe poziionat.
Dac elementul, care se dorete a fi poziionat absolut, nu are un printe sau stramo
poziionat, atunci el va fi poziionat relativ la colul stnga sus al ferestrei.
Pentru a poziiona absolut un element se folosete proprietatea
position:absolute i se atribuie valori proprietilor top, bottom, left i right.
n continuare vor fi date trei exemple:
primul, pentru poziionarea absolut a unui element TD, care nu are un
printe poziionat
al doilea, pentru poziionarea absolut a unui element TD care are un
printe poziionat
al treilea, pentru poziionarea absolut i a printelui
<HTML> <HEAD>
<STYLE>
IMG { position:absolute; left : 80px; top : 100px;}
</STYLE></HEAD>
<BODY>
<P>Pozitionarea absoluta a elementului IMG fata de coltul stanga sus</P>
<TABLE border=2 style=cellspacing=5 height=50 >
<TR ><TD>a11<TD> <IMG src="imag1.gif"> a12
202
<TR><TD>a21<TD>a22
</TABLE> </BODY> </HTML>
<HTML><HEAD><STYLE>
IMG{position:absolute; left:30pt; top:20pt}
.parinte{position:absolute; left:50pt; top:80pt}
</STYLE></HEAD>
<BODY>
<P>Pozitionarea absoluta a unui element IMG fata de parintele
TD, pozitionat absolut</P>
<TABLE borde=2 style=cellspacing=5 height=50 >
<TR><TD>a11
<TD class="parinte"> <IMG src="imag1.gif"> a12
<TR><TD>a21<TD>a22
</TABLE> </BODY> </HTML>
203
<HTML><HEAD><STYLE>
IMG{position:absolute; left:50pt; top:30pt}
.parinte{position:absolute; left:50pt; top:50pt}
</STYLE></HEAD>
<BODY>
<P>Pozitionarea absoluta a unui tabel si a unei imagini </P>
<TABLE class="parinte" borde=2 style=cellspacing=5 height=50 >
<TR><TD>a11<TD> a12
<TR><TD>a21<TD>a22 <IMG src="imag1.gif">
</TABLE>
</BODY> </HTML>
Poziionarea relativ
Spre deosebire de poziionarea absolut, n cazul poziionrii relative, un
element este poziionat n raport cu fluxul normal, relativ la poziia sa normal.
Poziionarea relativ se face cu ajutorul proprietii position:relative i
atribuind valori marginilor casetei: top, right, bottom, left
Un exemplu este redat mai jos
<HTML> <HEAD>
<STYLE>
IMG{position:relative; left:20px; top:20px}
204
</STYLE></HEAD>
<BODY>
<P>Pozitionarea relativa</P>
<TABLE border=2 style=cellspacing=5 height=50 >
<TR><TD>a11<TD> a12
<TR><TD>a21<TD> <IMG src="imag1.gif">
</TABLE>
</BODY> </HTML>
206
Figura 15. 12. Proprietatea z-index
207
PARTEA A III-A
JAVASCRIPT
207
208
16. JavaScript Elemente de baz
209
NOT!
JavaScript nu este acelai lucru cu Java. Java este limbaj de programare
complex (ca i C++), realizat de firma Sun, creat cu scopul de a realiza att
aplicaii client, ct i aplicaii server.
O aplicaie client este un program cu ajutorul cruia se poate interaciona
cu calculatorul, de exemplu un browser.
O aplicaie server este un program cu care interacioneaz o aplicaie
client, de exemplu un calculator la distan sau un server WEB. De exemplu, cu
ajutorul browser-ului (aplicaie client) se pot cere pagini WEB de la un server
WEB (aplicaie server), care dialogheaz cu browser-ul utilizat.
Se pot ntlni miniaplicaii Java (program Java) aflate pe un server WEB
i care se execut prin utilizarea unor tag-uri n paginile HTML, ca de exemplu,
<applet> sau <object>. La ntlnirea acestor etichete, browser-ul deschide
programul Java de pe serverul WEB i l execut n fereastra sa.
Programele JavaScript, numite i scripturi, sunt secvene de program ce se
scriu n blocul <SCRIPT> i </SCRIPT> din antetul unei pagini sau din corpul
programului.
JavaScript Interpretor
Prin limbaj interpretor se nelege faptul c browser-ul preia cte o
instruciune, o execut i trece la urmtoarea, o preia i o execut s.a.m.d. Din acest
motiv, erorile la limbajele interpretate sunt mai greu de depistat, deoarece nu exist
compilatoare ca la limbajele de programare complexe (Java, C, C++ etc.) Totui,
putem s sesizm o eroare din faptul c dup ea instruciunile nu mai pot fi
executate.
211
Unele evenimente sunt importante pentru JavaScript, cum ar fi atunci cnd
se executa clic pe butonul Submit, Reset all, Cancel etc., iar alte evenimente sunt
mai puin importante, cum ar fi deplasarea mouse-ului ntr-o zon fr informaii a
unui formular. Modul de gestionare a evenimentelor este un concept fundamental
al limbajului JavaScript. Pentru a reaciona la evenimentele importante, trebuie
definite rutine n JavaScript de tratare a evenimentelor.
Dac se ncorporeaz scripturi n paginile WEB, avem multe faciliti, ca
de exemplu:
Realizarea paginilor dinamice
Scrierea mesajelor n bara de stare a browser-ului
Afiarea csuelor de avertizare
Deschiderea de noi ferestre ale browser-ului
Validarea datelor din formulare
Crearea de formulare interactive
Efectuarea calculelor
Actualizarea datei i a timpului
Identificarea programelor de completare pentru browser (plug-in), cum
ar fi Flash
Programul JavaScript este totui limitat, n sensul c nu poate executa orice
operaie ca de exemplu:
citirea i scrierea fiierelor de pe, respectiv pe hard-ul propriu
scrierea aplicaiilor pe parte de server care au fost numite n capitolul 12,
aplicaii Common Gateway Interface (CGI), care se pot scrie cu
limbaje ca: Java, Perl, PHP.
JavaScript este o component a limbajului DHTML (Dynamic HTML),
care, mpreun cu HTML i CSS, este folosit de profesioniti pentru realizarea
paginilor cu efecte speciale de tipul celor realizate cu limbajul Flash, fr a apela la
aplicaiile de completare (plug-in).
OBSERVAIE!
Se poate ntmpla ca mai multe browser-e s nu poat interpreta scripturile
(cum ar fi versiunile anterioare Microsoft Internet Explorer 3, Netscape 1.X i
America Online 3) i n loc s execute aceste scripturi le afieaz. Pentru a ascunde
un cod JavaScript de browser-ele mai vechi, acesta se poate plasa ntr-un
comentariu HTML din paginile WEB care este scris ntre < !-- i -- >.
Browser-ele compatibile cu JavaScript recunosc i ruleaz un script
coninut ntr-un comentariu HTML. Browser-ele incompatibile cu JavaScript sau
pentru acelea pentru care JavaScript nu este activ (n mod prestabilit JavaScript
este activ pe majoritatea browser-elor) vor ignora scripturile, creznd c scriptul
este un comentariu. Atenie ns, blocul de comentarii HTML se va plasa n
interiorul blocului SCRIPT (pentru ca scriptul s fie considerat comentariu i s nu
fie afiat de browser-ele incompatibile JavaScript), nu n afara blocului SCRIPT,
caz n care i browser-ele compatibile JavaScript l vor considera ca pe un
comentariu HTML.
S considerm urmtorul exemplu:
<HTML> <HEAD>
<TITLE> primul script </TITLE>
<HEAD>
<BODY>
<SCRIPT language="JavaScript" type="text/javascript">
213
document.write('Bine ai venit n lumea scriptului')
</SCRIPT>
</BODY> </HTML>
214
Putem s mbuntim un pic aspectul programului de mai sus, prin
afiarea casetei de avertizare, care va conine textul i va rmne pe ecran pn se
execut evenimentul: clic pe butonul OK aflat n csu.
Pentru a afia caseta de dialog de avertizare se schimb linia de declaraie
din blocul SCRIPT, cu declaraia care conine funcia de avertizare alert, astfel:
<HTML>
<HEAD>
<SCRIPT language="JavaScript" >
<!--
alert('Bine ai venit, din nou')
-->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
OBSERVAII!
n programul din figura 16.1, scriptul este unul de coninut (apare n
corpul programului)
n programul din figura 16.2, scriptul este unul de antet (apare n blocul
de antet al paginii)
caseta de dialog de avertizare rmne pe ecran pn se acioneaz
butonul OK, caz n care browser-ul va afia textul n fereastra sa (ca n
figura 16.1)
spunem c funcia alert comand afiarea modal a cutiei de dialog de
avertizare, adic scriptul nu execut alt instruciune pn la nchiderea
cutiei
programul JavaScript face distincie ntre literele mari i literele mici, de
exemplu o variabil student este diferit de o variabil Student
dac scriptul conine mai multe instruciuni ntr-o linie, acestea vor fi
separate prin punct i virgula ( ; ). De obicei se evit aceast situaie.
215
16.3. Tipuri de date i variabile
Informaia inserat n paginile web sau n scripturi este o valoare care
aparine unui tip de date. De exemplu, informaia: Bine ai venit n mediul
JavaScript ! este o valoare de tip string.
n JavaScript exist ase tipuri de date: numerice, iruri, boolean, obiecte,
null, undefined (nedefinit).
216
Date de tip Boolean
Exist dou valori de tip boolean: adevarat sau true, fals sau false. Valorile
booleene sunt folosite n comparaii pentru a ajuta programul JavaScript s ia o
decizie.
Obiecte
n seciunea precedent am definit obiectul, proprietile i metodele lui.
Un obiect poate fi considerat un tip de dat care are o valoare (de exemplu, un
formular). n seciunile urmtoare va fi prezentat lucrul cu obiecte.
Tipul de data Null
Un tip NULL este acela care nu are nicio valoare i niciun neles. Aceste
valori vide sunt utile n scrierea scripturilor complicate, de exemplu cmpul nume
dintr-un formular poate s aib valoarea null, pn n momentul introducerii unui
nume.
Tipul de dat Undefined
O valoare nedefinit poate fi dat unei variabile dup ce ea a fost creat,
dar nainte de a i se atribui o valoare.
Atribuire i egalitate
Semnul egal (=) este folosit n JavaScript pentru a indica o operaie de
atribuire.
De exemplu: cantitate = 20 nseamn Se atribuie valoarea 20 variabilei
cantitate sau cantitate ia valoarea 20. Cnd se dorete a se compara dou valori
dac sunt egale se folosete o pereche de semn egal (==). Acestea vor fi enumerate
i la operatori, n seciunea urmtoare.
16.3.2. Variabile
Variabilele sunt folosite n JavaScript pentru a stoca valori n scripturile
noastre. Variabilele sunt simboluri care nlocuiesc datele ce se pot modifica n
timpul execuiei. n cazul n care nu se cunoate o valoare (de exemplu, un pre al
unui produs dorit de achiziionat), n momentul rulrii unui program JavaScript se
poate folosi variabila Pre. Ne putem imagina o variabil ca pe o cutie, care are
pe ea scris un nume (Pre) i care va conine o valoare (valoarea preului).
Declararea variabilelor
Dei nu este impus, este considerat o bun practic s se declare
variabilele nainte de a fi folosite. Pentru a comunica browser-ului c dorim s
crem o variabil, se folosete declaraia n dou pri:
Cuvntul cheie var
Numele variabilei care este format dintr-un set de caractere
alfanumerice, dar primul caracter trebuie s fie o liter.
217
Este indicat ca numele variabilei s fie ct mai sugestiv. Este interzis s se
foloseasc drept nume de variabil cuvintele cheie (25 la numr n JavaScript) i nu
sunt indicate s se foloseasc cuvintele rezervate (33 la numr n JavaScript).
OBSERVAII!
Se pot declara mai multe variabile cu acelai var, dar ele trebuie separate
prin virgule
Amintim c JavaScript este un limbaj case-sensitive, adic face
distincie ntre literele mari i mici
Variabilele pot avea orice lungime
Nu se declar, n mod obligatoriu, tipul unei variabile, este suficient s
indicm numele ei. Tipul poate fi dat n urma unei atribuiri
Exist posibilitatea s nu declarm implicit o variabil cu var, dar putem
s-i asignm o valoare. De exemplu: pre = 100 este o declarare
implicit a variabilei pre
218
Mesajul (primul parametru) este afiat n cutia de dialog. Dac se introduce
o dat i se apas OK, cutia va returna aceast dat. Dac nu se introduce nicio dat
dar se apas OK, cutia va returna al doilea parametru, valoarea implicit. Dac se
apas CANCEL, atunci se va returna NULL. O declaraie de atribuire i comunic
browser-ului s nlocuiasc valoarea iniial cu o valoare nou. O declaraie de
atribuire are trei pri: numele variabilei, operatorul de atribuire (=) i valoarea
returnat de funcia prompt, astfel:
nume_variabil= prompt(Mesaj, valoare nou).
De exemplu:
var n=0
n = prompt(Dai valoarea lui n, 0)
alert (n)
Dac se introduce n cutia de dialog o dat, de exemplu 10 i se apas
OK se va afia 10
Dac se apas OK i nu se introduce nimic apare 0
Dac se apas CANCEL se afieaz NaN
Conversia datelor
Am artat c variabilele n JavaScript nu au declarat tipul. Este posibil s
convertim anumite variabile la tipul dat dorit. De exemplu, numerele pot fi incluse
n iruri, dar irurile nu pot fi considerate direct numere ca s putem s le aplicm
operatori aritmetici.
Concatenarea irurilor
Valorile de tip ir pot fi concatenate cu ajutorul operatorului +. De
exemplu, prin irul: ir1=abc ir2=def , ir1 + ir2 se ntelege irul format
prin unirea celor dou abcdef
Dac avem un numr, acesta este convertit direct n ir i apoi afiat, de
exemplu, cu funcia alert(ir).
- var vrst=20
alert(vrst= + vrst + ani)
atunci variabila ntreag este convertita n ntreg i se va afia
vrst = 20 ani
Pentru a transforma irurile n numere pentru a le putea aplica operatorii
aritmetici folosesc dou funcii: parseInt() i parseFloat().
Aceste funcii transform un ir n numr ntreg, respectiv n numr real.
Conversia unui ir n numr se face pn cnd se ntlnete un caracter care nu este
cifr.
219
De exemplu:
parseInt(100) - ntoarce 100
parseInt(-120) - ntoarce -120
parseInt(300ab) - ntoarce 300
parseInt(abc) - ntoarce NaN, mesaj de eroare
parseInt(20.75) - ntoarce 20
parseFloat(37.4) - ntoarce 37.4
parseFloat(47.89ab) - ntoarce 47.89
Exemplificm cele spuse mai sus, n scriptul pentru adunarea a dou
numere: nr1 i nr2.
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
nr1 = parseInt(prompt("Dai primul numr: ",0))
nr2 = parseInt(prompt("Dai al doilea numr: ",0))
s = nr1+nr2
alert("Suma este: " + s)
</SCRIPT>
</HEAD>
</BODY>
</HTML>
220
Operatori
n JavaScript exist mai multe tipuri de operatori: aritmetici, logici, de
atribuire, relaionali, condiionali, logici pe bii. n continuare vor fi descrise
aceste tipuri de operatori.
n JavaScript, ca i n alte limbaje de programare, operatorii sunt evaluai
ntr-o anumit ordine, ordine cunoscut sub numele de preceden. Un operator cu
preceden mai mare este evaluat naintea unuia cu preceden mai mic.
n tabelul de mai jos este dat ordinea descresctoare a precedenei lor.
Operator Descriere
., (),[], Operatori de adresare: accesare cmp, indexare
tablou, apel functie
++, - -, +, - Operatori unari (un singur operand), ntoarcerea
, !, ~ unei date, crearea unui obiect
*, /, % nmulirea, mprirea, restul mpririi
<<, >> Operatori de deplasare bii
<, <=, >, Operatori relaionali
>=
==,!=, = = Egalitate, inegalitate, identitate, nonidentitate
=, != = =
& AND (i) pe bii
^ XOR (sau exclusiv) pe bii
| OR (sau) pe bii
&& AND logic
|| OR logic
?: Condiional
=, op=, Atribuirea, atribuire cu operaie
(+=, -=, %=, |=,
*=, <<=, >>=, &=,
^=)
, Operator virgul de evaluare multipl
Operatori aritmetici
Operatorii aritmetici sunt : + (operator binar), - (operator binar), * , /, %,
++, --, + (operator unar de semn), - (operator unar de semn), + (operator de
concatenare).
NOT!
Operatorii unari au un singur operand
Operatorii binari au doi operanzi
n continuare vor fi definii i exemplificai operatorii aritmetici enumerai
mai sus:
221
Operatorul binar + este operator de adunare. De exemplu:
o 5+7 ia valoarea 12
o 9.4+13.7 ia valoarea 22.1
o n=10 i m=20 n+m ia valoarea 30
Operatorul binar - este operator de scdere. De exemplu:
o 5-7 ia valoarea -2
o 9.4 - 13.7 ia valoarea -4.3
Operatorul * este operatorul de nmulire. De exemplu:
o 5*7 ia valoarea 35
o n=25 n*10 ia valoarea 250
Operatorul / este operatorul de mprire. De exemplu:
o 7/2 ia valoarea 3.5
o a = 10 2 / a ia valoarea 0.2
Operatorul % este operatorul pentru obinerea restului mpririi.
De exemplu:
o 7%2 ia valoarea 1
o -5%2 ia valoarea -1
o n=7.5 atunci n%3 ia valoarea 1.5
OBSERVAIE!
n JavaScript restul poate fi i negativ, operanzii pot fi i numere reale.
222
y = x++*5
alert("Valoarea lui x++ este: " + x + " i valoarea lui y = x++*5 este: " + y)
</SCRIPT>
</BODY></HTML>
browser-ul va afia:
Operatori de atribuire
Atribuirea este un operator, pe care l-am introdus n seciunea precedent.
Exist mai multi operatori de atribuire:
Operatorul = se folosete ntr-o expresie variabil = expresie i are
ca efect evaluarea expresiei i atribuirea valorii ei variabilei.
n JavaScript se pot efectua i atribuiri multiple, cu urmtoarea sintax:
v1 = v2 = v3 =...= vn = expresie
Principiul de execuie este urmtorul: se evalueaz expresia din partea
dreapt i valoarea se atribuie variabilei vn, apoi coninutul variabilei vn este
atribuit variabilei vn-1 s.a.m.d.
Operatorul de atribuire = poate fi prefixat de un operator aritmetic astfel:
(OP=), unde OP poate fi +, -, *, /, %. Efectul unor astfel de atribuiri este
urmtorul: se execut operaia din stnga semnului = i apoi se face
atribuirea valorii operaiei variabilei prima din stnga.
Se consider urmtorul cod:
<HTML><HEAD>
<SCRIPT language="JavaScript">
var x=100, y=200
x+=y
alert("x+=y este: " + x)
x=100
224
x*=y
alert("x este: " +x)
</SCRIPT>
</BODY></HTML>
Browser-ul va afia:
OBSERVAII!
1. Se pot compara i iruri, ordinea fiind cea lexicografic
2. Conform codului ASCII o cifr este mai mic dect o liter (codul
cifrelor este 48-57) i o liter mare (codul 64-93) este mai mic dect o
liter mic (codul 97-126)
225
Exemple cu operatori relaionali:
a) 35> 45 returneaz false
b) a = 35 a>20 returneaz true
c) 5<aBc returneaz true
d) C<c returneaz true
e) a=aBc b=Abc a>b returneaz false
f) a!=b returneaz true
g) a== b returneaz false
Operatorul condiional
Operatorul condiional, cunoscut i sub numele de operator trenar, este
diferit de cei prezentai mai sus. Acest operator cere browser-ului s evalueze o
expresie i, n funcie de valoarea acesteia, se execut o anumit expresie dac
valoarea este true i o alta dac valoarea este false. Sintaxa este urmtoarea:
expresie ? expresie1: expresie 2
i are ca efect :
Se evalueaz expresia (prima parte a operatorului)
Dac expresie = true atunci se evalueaz expresie1 (partea a doua)
Dac expresie = false atunci se evalueaz expresie2 (partea a treia)
Dup cum reiese din sintaxa operatorului condiional, acesta este alctuit
din trei pri. Prima parte este separat de partea a doua prin caracterul ? , iar
partea a doua este separat de partea a treia prin caracterul : .
De exemplu, putem folosi operatorul condiional n rezolvarea ecuaiei de
gradul I, ax+b =0, scriind scriptul:
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
a=parseInt(prompt("dati primul numar",0))
b=parseInt(prompt("dati al doilea numar",0))
a!=0?alert("x= "+-b/a):b!=0?alert("nu exista solutii"):alert("o
infinitate de solutii")
</SCRIPT>
</HEAD>
<BODY></BODY>
</HTML>
226
Figura 16. 7. Operatorul condiional ?
227
Operatorii binari &, |, ^ , AND, OR, XOR acioneaz; la nivel de bit,
pentru fiecare pereche de bii aflai pe poziii identice, conform tabelului
de mai jos:
OBSERVAIE!
Aceti operatori las nemodificat coninutul variabilelor, de exemplu,
x=2
alert ( x << 2)
alert (x)
va afia mai 8 apoi 2.
x<<2 va fi 8 (00001000)
~x va fi -3 (11111101)
x>>1 va fi 1 (00000001)
y<<2 va fi 20 (00010100)
x&y va fi 0 (00000000)
x|y va fi 7 (00000111)
x^y va fi 7 (00000111)
229
17. Instruciuni i Funcii n JavaScript
17.1. Instruciuni
n JavaScript, ca i n majoritatea limbajelor de programare complexe,
exist trei mari categori de instruciuni:
de atribuire
de decizie
repetitive
Despre instruciunile de atribuire s-a vorbit i n capitolul precedent.
Instruciunea IF i IF ELSE
Instruciunea IF este una din cele mai folosite instruciuni n JavaScript,
pentru c determin browser-ul s execute un set de instruciuni dac o anumit
expresie condiional este adevarat sau nu.
O expresie condiional este o expresie boolean care ia valoarea true sau
false.
Instruciunea IF simpl
Instruciunea If are sintaxa:
IF (expresie conditional) { instruciuni }
Se observ c instruciunea condiional IF simpl are trei pri: cuvntul
cheie IF o expresie condiional cuprins ntre paranteze i blocul de instruciuni
care se execut n cazul n care expresia este true, cuprins ntre acolade ({}). Blocul
de instruciuni se mai numete instruciune compus.
230
n cazul n care blocul de instructiuni conine o singur instruciune,
acoladele pot lipsi, dar este indicat s se foloseasc pentru lizibilitatea scriptului.
Un exemplu de instruciune IF simpl este dat mai jos.
<HTML>
<HEAD></HEAD>
<BODY>
<SCRIPT language = "JavaScript">
// Ecuaia de gradul I
a = parseInt( prompt ("Dai un numr a", 0))
b = parseInt( prompt ("Dai termenul liber b", 0))
if (a !=0)
{ x = - b / a; alert ("x = " + x) }
</SCRIPT>
</BODY></HTML>
IF (expresie 1)
{ instruciuni 1}
else if (expresie 2)
{instruciuni 2 }
else
{instruciuni 3}
233
Figura 17.3. Instruciunea IF ... else if ... else
Instruciunea IF imbricat
n cazul n care o expresie este adevrat se execut o instruciune IF care
are o expresie care se evalueaz i, dac este adevrat, se execut alt instruciune
IF s.a.m.d., spunem c avem instruciuni IF imbricate.
Sintaxa instruciunii este:
IF (expresie 1)
{expresie 2}
..
{ if expresie n }
else
{expresie n1}
.........
else
{expresie 2.1}
else
{expresie 1.1}
234
n exemplul urmtor se rezolv ecuaia de gradul 2: ax2 + bx + c = 0
<HTML>
<HEAD></HEAD>
<BODY>
<SCRIPT language = "JavaScript">
a = parseInt(prompt ("Dai a ", 0))
b = parseInt(prompt ("Dai b ", 0))
c = parseInt(prompt ("Dai c ", 0))
D=b*b-4*a*c
if (a != 0)
if (D>=0) // a<>0 D>0
{alert ("Rdcini reale") }
else // a <> 0 D< 0
{alert ("Rdcini complexe") }
else
if (b!=0) // a=0 b<>0
{ alert ("Ecuaie gradul I x = " + -c/b) }
else
if (c==0)
{alert ("O infinitate de soluii ") }
else // a=b=0 c<>0
{alert ("Nu exist soluii") }
</SCRIPT>
</BODY>
</HTML>
235
Figura 17.4. Instruciunea IF imbricat
Instruciunea switch...case
n cazul n care browser-ul trebuie s ia o serie de decizii pe baza unei
singure valori de schimb atunci instruciunea if este ineficient, folosindu-se
instruciunea switch case.
Sintaxa instruciunii switch...case:
switch (expresie)
{
case exp1: instruciuni 1 [; break]
case exp2: instruciuni 2 [; break]
.
.
case exp3: instruciuni n [; break]
[default: instruciuni n +1]
} // end switch
unde:
- [ ] - au caracter opional
- expresie - este o expresie ntreag
- expresie i sunt expresii ntregi
- instruciuni i sunt instruciuni care se execut n cazul n care
expresie==expresie i
236
execut instruciunile ce urmeaz dup cuvntul cheie default, dac acesta exist,
altfel, iese din instruciunea switch case.
Dac break este ultima instruciune din grupul de instruciuni in care se
execut, atunci browserul omite s evalueze expresiei+1 expresiein i execut
instruciunea ce urmeaz dup acolada nchis (}).
Dac break nu este la sfritul grupului de instruciuni ce se execut, atunci
browser-ul compar valoarea expresiei cu valoarea expresiilor i+1 expresiein ,
chiar dac nu va mai gsi egalitate pn la sfritul instruciunii switch.
Codul care urmeaz probeaz instruciunea switch. Se d un numr n baza
10 i se cere transformarea lui n baza 16. Pentru aceasta se mparte un numr la 16
pn cnd ajunge la zero i resturile, luate n ordine invers obinerii lor, formeaz
numrul n baza 16 (N = Q * 16 + R).
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function Hexazec(n)
{
var Hexa ="", r
while (n>0) {
r=n%16
if (r>=10) {
switch(r) {
case 10: R="A"; break
case 11: R="B"; break
case 12: R="C"; break
case 13: R="D"; break
case 14: R="E"; break
case 15: R="F"; break
}
Hexa=R+Hexa
}
else {
Hexa=string(r)+Hexa
}
n=(n-r)/16
}
return Hexa
}
</SCRIPT>
<BODY>
<SCRIPT language="JavaScript">
n=parseInt(prompt("Dai numrul n",0))
alert("Numrul n baza 10 este n = " + n )
alert("Numrul n baza 16 este nr16 = " + Hexazec(n))
</SCRIPT></BODY></HTML>
237
Figura 17.5. Instruciunea switch
Instruciunea for
Instruciunea for are o variabil contor, o condiie i o aciune ce
actualizeaz contorul. Ciclul for determin browser-ul s execute instruciunile din
corpul ciclului pn cnd condiia este fals. nainte de nceperea unui ciclu (acesta
se mai numete i o iteraie sau un pas al ciclului) condiia este testat. Dup
executarea instruciunilor din ciclu, contorul este actualizat nainte ca o nou
iteraie s nceap.
Dac condiia returneaz mereu valoarea false, ciclul nu se execut
niciodat. Dac condiia returneaz mereu valoarea true, ciclul este infinit.
Sintaxa instruciunii for este:
for(expresie_iniializare; expresie_condiional [;
expresie_incrementare])
{
instruciuni
}
unde:
238
expresie_iniializare se folosete pentru iniializarea contorului
(variabila de ciclare)
expresie_test se folosete pentru a testa dac se execut blocul de
instruciuni subordonate instruciunii for; dac expresia are valoarea
true, atunci se execut instruciunile, altfel se oprete ciclarea
expresie_incrementare este opional i se folosete pentru incrementarea
variabilei de ciclare. Dac incrementarea se face cu 1, adic se folosete
operatorul ++, atunci expresie_incrementare poate lipsi
Instruciunea for funcioneaz astfel:
a) se evalueaz expresia_iniializare (aceasta poate conine i declaraia
variabilei de ciclare)
b) se evalueaz expresia_test. n cazul n care are valoarea true, se execut
instruciunile dup care se trece la pasul c), altfel se trece la
instruciunea dup for
c) se evalueaz expresia de incrementare i se trece la pasul b)
S probm instruciunea for prin urmtoarele exemple: s aflm suma
primelor n numere, n mai multe moduri.
OBSERVAIE! expresiile pot fi vide, dar nu este indicat folosirea
instruciunii for n aceast form
1)
<HTML>
<HEAD><TITLE>Suma primelor n numere </TITLE></HEAD>
<BODY>
<SCRIPT language="JavaScript">
s1=0
n=parseInt(prompt("dati numarul n = ",1))
for(i=1 ; i<=n ; i++)
s1+=i //s1=s1+i
alert("suma primelor "+n+ " numere este "+s1)
s2=0
for(i=n; i>=0 ; i--)
s2+=i //s2=s2+i
document.write("Suma primelor " + n + " numere este "+ s2)
</SCRIPT>
</BODY>
</HTML>
2) Dac variabila de ciclare este definit n afara instruciunii for i
incrementarea se face cu 1, atunci putem avea urmtorul script:
<SCRIPT language = JavaScript>
var i = 0 , s = 0
for ( ; i<=n; ) s + = i
alert (s)
</SCRIPT>
239
3) Pot lipsi toate expresiile din instruciunea for:
4) Ciclul infinit:
240
Continue
Cuvntul cheie continue determin browser-ul s ntrerup execuia
comenzilor din cadrul blocului de instruciuni i s treac la nceputul ciclului,
adic la testarea expresiei condiionale, ca i cum ar fi ajuns la sfritul ciclului.
Cuvntul cheie continue se folosete pentru toate instruciunile de ciclare,
cu excepia instruciunii do while, care execut blocul de instruciuni cel putin o
dat.
De exemplu, dac dorim s calculm suma primelor 10 numere, fr a-l
aduna i pe 5, vom proceda astfel:
<HTML>
<HEAD>
<TITLE>Suma primelor n numere fara unul </TITLE></HEAD>
<BODY>
<SCRIPT language="JavaScript">
s=0
for(i=1;i<=10; i++)
if (i == 5)
continue
else s+=i
document.write("Suma primelor 10 numere fara 5 este " + s)
</SCRIPT>
</BODY>
</HTML>
Instruciunea for in
n JavaScript exist o instruciune special de ciclare i anume
instruciunea for in. Acest instruciune este asemntoare instruciunii for,
diferena const c instruciunea for in se folosete cnd nu se cunoate numrul
de repetri pe care browser-ul trebuie s le fac n cadrul unui ciclu, de exemplu,
241
dac dorim s aflm proprietile unui obiect fr a ti numrul lor. Instruciunea
for in i cere browser-ului s execute blocul de instruciuni pentru fiecare
element dintr-o list.
Instruciunea for in are structura urmtoare:
for (list)
{ instruciuni}
Instruciunea While
Instruciunea de ciclare while este asemntoare instruciunii for. Diferena
const n faptul c instruciunea while nu are o variabil contor, nici expresie de
incrementare.
242
Instruciunea while cere browser-ului s execute un bloc de instruciuni
att timp ct o condiie definit n aceast instruciune este true. Ciclul while nu
indic numrul de iteraii fcute.
Sintaxa acestei instruciuni este:
while (expresie)
{instruciuni}
<SCRIPT language="JavaScript">
var s=0
n=parseInt(prompt("Dai numrul n",1))
while (n>0) {
s+=n%10
n=(n-n%10)/10
}
alert("Suma cifrelor numrului n este: " + s)
</SCRIPT>
Instruciunea do while
244
17.2. Funcii n Java Script
n acest capitol se prezint modul de definire i utilizare a funciilor n
JavaScript. Funciile execut anumite aciuni i ntorc rezultatele.
Ca i limbajele de programare complexe, funciile n JavaScript combin
cteva instruciuni care s execute anumite operaii, sub acelai nume. Informaiile
despre funcie sunt incluse dup numele funciei ntre paranteze. Numele funciei
mpreun cu operaiile i informaiile ei pot fi introduse ntr-un cod scris ntr-un
anumit loc, iar executarea ei poate fi cerut browser-ului ori de cte ori este nevoie.
Informaiile despre funcie se mai numesc argumentele sau parametrii funciei.
Unele funcii pot s nu aib parametri.
246
17.2.2. Domeniul de valabilitate a variabilelor
Prin domeniul de valabilitate sau de vizibilitate a variabilelor se ntelege n
JavaScript posibilitatea de accesare a unei variabile. n JavaScript exist dou
tipuri de variabile din punct de vedere al domeniului de valabilitate: variabile
globale i variabile locale. O variabil global este definit n afara unei funcii i
valoarea ei este vizibil (valabil) i poate fi modificat de toate funciile definite
dup ea, precum i de toate instruciunile existente dup ea. Un exemplu de
utilizare a variabilelor globale:
<HTML>
<HEAD
> <TITLE>Variabile globale</TITLE>
<SCRIPT language="JavaScript">
function suma_cifre()
{alert('x= '+x)
while(x>0)
{s=s+x%10
x=(x-x%10)/10}
return s}
function afiseaza_suma()
{alert('Suma cifrelor lui x este: '+s) }
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">
var x=prompt('Dai numrul x',0)
var s=0
suma_cifre()
afiseaza_suma()
alert('numarul x dupa apelul suma_cifre() este '+x) </SCRIPT>
</BODY></HTML>
247
Figura 17.12. Variabile globale
248
<HTML>
<HEAD>
<TITLE>Variabile globale si locala</TITLE>
<SCRIPT language="JavaScript">
function suma_n()
{var s=0
n=parseInt(prompt('Dai n ',0))
for(i=1;i<=n;i++)
s+=i
alert('Suma primelor n= ' + n + ' numere este: '+s)}
</SCRIPT></HEAD>
<BODY>
<SCRIPT language="JavaScript">
var s=10
suma_n()
alert("variabila globala s = "+ s)
</SCRIPT>
</BODY>
</HTML>
249
17.2.3. Parametri
n sintaxa unei funcii, am artat c ntre parantezele rotunde pot fi trecui
parametri sau argumente. De asemenea am spus c o funcie efectueaz o aciune.
Unele funcii i efectueaz aciunea fr a fi nevoie s introducem argumente,
avnd toate valorile necesare definite n corpul funciei. Acesta este cazul funciilor
fr argumente, introduse n seciunea precedent. Unele funcii necesit unele date
(valori sau variabile) pentru a-i efectua aciunea. Aceste date, numite argumente
sau parametri, se trec ntre parantezele din definirea funciei, separate prin virgul.
Aceste date nu sunt scrise n definiia funciilor (ca la funciile far argumente), i
trebuie transmise funciei ca parametri. Parametrii din antetul funciei se numesc
parametri formali, iar parametrii din apelul funciei se numesc parametri efectivi.
La apelul funciei se transmit valori parametrilor formali, proces numit transferul
prin valoare ctre funcie. Parametrii efectivi pot fi att valori, ct i variabile. n
funcie, parametrii formali sunt de fapt variabile locale.
Dac n exemplul din figura 17.11 presupunem c salariul de baz i
procentul de indexare nu sunt date n corpul funciei, ci sunt argumente ale funciei
indexare_salariu(), noua funcie va fi apelat prin valori sau se atribuie valori
parametrilor efectivi. Pentru acest exemplu vom avea codul:
<HTML>
<HEAD>
<TITLE>Funcii cu parametrii</TITLE>
<SCRIPT language="JavaScript">
function indexare_salariu(sal_vechi,coef_indexare)
{var sal_nou=sal_vechi*(1+indexare/100)
alert('Salariul '+salariu+' indexat cu '+indexare+'% este: '+sal_nou)
}
</SCRIPT></HEAD><BODY>
<SCRIPT>
salariu=prompt('Dai salariu',0)
indexare=prompt('Dai coeficient de indexare',0)
//apel functie prin variabile
indexare_salariu(salariu,indexare)
//apel prin valori
salariu=2000; indexare=5
indexare_salariu(salariu,indexare)
</SCRIPT>
</BODY>
</HTML>
250
Figura 17.14. Apel funcii cu parametri
Parametrii efectivi pot fi dup cum reiese din exemplul de mai sus:
prin variabilele salariu i indexare, caz n care funcia se apeleaz prin
valorile reinute de acestea
prin valori (2000 respectiv 5)
n capitolul urmtor se va arta cum pot fi apelate funciile din codul HTML.
17.2.5. Recursivitate
Recursivitatea este o tehnic important de programare. Ea const n
apelarea funciei n corpul ei. Un exemplu este codul factorialului:
<HTML>
<HEAD>
<TITLE>Funcii recursive</TITLE>
<SCRIPT language="JavaScript">
function fact(n)
{
if(n==0)
return 1
else
return fact(n-1)*n
}
</SCRIPT>
<BODY>
<SCRIPT language="JavaScript">
n=parseInt(prompt("dati n= ",0))
alert(n+"! = "+ fact(n))
</SCRIPT>
</BODY>
</HTML>
252
18. OBIECTE
253
referi la proprietatea lungime vector, i folosind parantezele drepte [ ], pentru a
ne referi la componentele vectorului obiect.
<HTML> <HEAD>
<SCRIPT language="JavaScript">
function Initializare_vect(lung)
{
this.lungime=lung
for(i=0;i<this.lungime;i++); this[i]=0
}
</SCRIPT> </HEAD>
<BODY> <SCRIPT language="JavaScript">
vect=new Initializare_vect(20)
document.write("lungimea vectorului este "+ vect.lungime+ "<BR>")
for(i=0;i<vect.lungime;i++)
document.write(vect[i]+ " " )
</SCRIPT>
</BODY></HTML>
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function complex(a,b)
{
this.real=a; this.imag=b
}
function modific(z)
{
254
z.real= 5 + ++z.real; z.imag=2 + ++z.imag
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">
z = new complex(1,1)
document.write("z.real= " + z.real + " z.imaginar= " + z.imag +"<BR>")
modific(z)
document.write("Dupa modificarea parametrilor"+"<BR>")
document.write("z.real= " + z.real +" z.imag= "+z.imag )
</SCRIPT></BODY> </HTML>
1 2 suma()
Dac n exemplul de mai sus se dorete ca suma s fie calculat ntr-un nou
obiect, atunci funcia suma() va fi:
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function complex(a,b)
{
this.real=a
this.imag=b
this.suma=suma
}
function suma(z)
{
w = new complex(0,0);
w.real=this.real+z.real
w.imag=this.imag+z.imag
}
</SCRIPT> </HEAD>
<BODY> <B> Metoda 2 de sumare a 2 nr. complexe</B> <BR>
<SCRIPT language="JavaScript">
z1 = new complex(2,7)
256
document.write("z1.real= " +z1.real + "z1.imaginar= "+ z1.imag +"<BR>")
z2 = new complex(1,6)
document.write("z2.real= " +z2.real +"z2.imaginar= " + z2.imag +"<BR>")
z1=z1.suma(z2)
document.write("suma.real= " +z1.real + " suma.imaginar= " + z1.imag )
</SCRIPT>
</BODY>
</HTML>
257
z2 = complex(1,6)
document.write("z2[real]=" +z2["real"]+"z2[imaginar]="+ z2["imag"]+"<BR>")
z1=z1.suma(z2)
document.write("suma[real]= "+z1["real"]+" suma[imaginar]= "+ z1["imag"])
</SCRIPT> </BODY> </HTML>
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function complex(a,b)
{
this.real=a
this.imag=b
this.modific=modific
}
function modific(z)
{
z.real= 5 + ++z.real
z.imag=2 + ++z.imag
}
</SCRIPT>
</HEAD>
<BODY>
<B>FOR pentru afisare proprietati si metode <BR>
FOR pentru afisare valori proprietati si cod sursa pentru metode </B><BR>
<SCRIPT language="JavaScript">
var i
259
z = new complex(1,2)
for (i in z) document.write(i+" ")
for (i in z) document.write(z[i] + " ")
modific(z)
document.write("<BR>"+"Dupa modificarea parametrilor" + "<BR>")
document.write("z.real= " + z.real +" z.imag= " +z.imag)
</SCRIPT> </BODY></HTML>
260
<SCRIPT language="JavaScript">
var i
for (i in z) document.write(i+" ") document.write("<BR>")
for (i in z) document.write(z[i] + " ")
modific(z)
document.write("<BR>"+"Dupa modificarea parametrilor" + "<BR>")
document.write("z.real= " + z.real +" z.imag= " +z.imag)
</SCRIPT></BODY> </HTML>
Obiecte Incluse
Un obiect poate include alte obiecte, aa cum include proprieti i
metode. Pentru a accesa componentele unui obiect inclus folosim scrierea:
nume_obiect.nume_obiect_inclus.nume.componenta
262
Cele mai importante metode ale obiectului Math sunt:
abs(x) returneaz valoarea absolut a numrului real x (modul)
cos (x) returneaz cosinusul numrului x
sin(x) returneaz sinusul numrului x
tan(x) - returneaz tangenta numrului x
acos(x) arccosinus, returneaz unghiul n radiani
asin(x) - arcsin, returneaz unghiul n radiani
atan (x) arctagent, returneaz unghiul n radiani
floor(x) returneaz partea ntreag a numrului real x ([x])
random( ) returneaz un numr aleator n [0,1)
round(x) returneaz cel mai apropiat ntreg de argumentul x
(rotunjurea lui x)
sqrt (x) returneaz radicalul numrului real x
pow (x,y) returneaz x la puterea y
exp(x) returneaz e la puterea x
log(x) returneaz logaritm n baza e din x
Urmtorul exemplu testeaz unele funcii matematice:
<HTML> <HEAD> </HEAD> <BODY>
FUNCTII MATEMATICE - EXEMPLE
<SCRIPT language="JavaScript">
alert("Aria cercului de raza 5= " + Math.PI*Math.pow(5,2))
alert("abs(2.5) =" + Math.abs (-2.5 ) )
alert("[1.58]= " + Math.floor (1.58))
alert("[-1.58]= " + Math.floor (-1.58))
alert("Math.logz un numr natural intre 1 i 10")
alert("Math.sqrt(Math.pow((4-8),2)+Math.pow((5-2),2))= " +
Math.sqrt(Math.pow((4-8),2)+Math.pow((5-2),2)) +" lungime segment")
</SCRIPT></BODY></HTML>
263
Urmtorul exemplu definete o funcie care returneaz modulul unui
numr complex .
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function complex(a,b)
{ this.real=a; this.imag=b; this.modul=modul}
function modul()
{return Math.sqrt(this.real*this.real + this.imag*this.imag)}
</SCRIPT>
</HEAD>
<BODY> <B> Modulul unui numr complex </B> <BR>
<SCRIPT language="JavaScript">
z=new complex(3,4)
document.write("z.real= " +z.real + " z.imaginar= " + z.imag +"<BR>")
m=z.modul()
document.write("modulul numarului complex z= " + m)
</SCRIPT>
</BODY>
</HTML>
265
Metoda split(delimitator) creeaz un vector, a crui elemente vor fi
subiruri ale irului dat, obinute de un ir delimitator. Astfel, din irul:
s = 7, 35, 12, 67, 2007 , se va obine vectorul v=(7,35,12,67,2007).
n exemplul urmtor se folosete ca delimitator irul ,.
<HTML> <HEAD> </HEAD> <BODY>
<SCRIPT language="JavaScript">
s =new String('7 , 35 , 12 , 67 , 2007')
document.write("sirul dat este: " + s + "<BR>")
v=s.split(",")
document.write("vectorul creat este: " + "<BR>")
for(i=0;i<v.length;i++)
document.write(v[i] + " ")
</SCRIPT </BODY> </HTML>
266
+ "<B>" + s.substring(6,15) + "</B>" + "<BR>")
document.write("metoda de substragere a unui sir de n caractere din
pozitia poz este: "
+ "<B>" + s.substr(16,6) + "</B>" + "<BR>")
</SCRIPT> </BODY> </HTML>
267
Urmtoarele trei metode sunt de conversie a irurilor n numere i invers.
Ele au mai fost definite, fiind utile n unele exemplificri.
Metoda parseInt(s) i metoda parseFloat(s) - convertesc un ir la un
numr ntreg, respectiv zecimal. De exemplu, atunci cnd introducem
date cu prompt( sir_numeric,val_initiala) se returneaz o valoare
de tip ir. Pentru a o putea folosi n calcule matematice se folosete una
din metodele de mai sus, astfel:
parseInt(prompt(sir_numeric,val_initiala)) .
De exemplu: parseInt(prompt( dati dimensiune sirului, ))
Metoda toString(n) convertete o valoare de tip string n numr.
Aceast metod este automat apelat n cazul concatenrii irurilor.
De exemplu, n declaraia: document.write(suma = + s), numrul s va
fi considerat string.
Urmtoarele ase metode se refer la font (dimensiune, culoare), stil (bold,
italic) i efecte (scriere cu litere mari sau mici).
Metoda fontcolor(culoare) returneaz irul ntre tag-urile <font
color=culoare> i </font> i textul va apare cu culoarea culoare.
Metoda fontsize(dim) returneaz irul ntre tag-urile <font
size=dim> i </font> i textul va fi scris de dimensiune dim.
Metoda bold() - returneaz irul ntre tag-urile <B> i </B> i n
document textul va apare boldit.
Metoda italics() returneaz irul ntre tag-urile <I> i </I> i n
document textul va apare italic.
Metoda toUpperCase() returneaz irul scris cu majuscule.
Metoda toLowerCase() returneaz irul scris cu litere mici.
Se probeaz metodele de mai sus n exemplul de mai jos.
Se introduce un ir i se testeaz dac este alfabetic, adic conine litere i
eventual caracterul spaiu. Pentru a evita o testare n plus se transform irul n
majuscule sau n litere mici. Se folosesc operatorii logici: ! (negare logic),
&&(i logic) i || (sau logic), introdui n capitolul 16.
268
if (ras) document.write("Sirul este alfabetic".fontcolor("blue") )
else document.write("Sirul NU este alfabetic".fontsize("6"))
</SCRIPT>
</BODY> </HTML>
269
Constructorul Array() este de fapt o metod de creare a unui obiect de tip
tablou.
Accesarea elementelor unui vector se face cu nume_vector[indice].
270
unui tablou bidimensional se face cu a[i][j]. ncercarea de a accesa elementele unei
matrice n modul a[i, j] este eronat.
n urmtorul exemplu se creeaz o matrice a crei elemente sunt produsele i*j.
<HTML> <HEAD> </HEAD>
<BODY> <B> Matrice cu elementele a[i][j]= i*j </B> <BR>
<SCRIPT language="JavaScript">
var i,j
n=parseInt(prompt("Dim. vect n= ", 0))
a= new Array(n)
for(i=0;i<n;i++)
a[i]= new Array(n)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=( i*j)
for(i=1;i<n;i++)
{for(j=1;j<n;j++)
document.write(a[i][j] + " " ); document.write("<BR>") }
</SCRIPT> </BODY> </HTML>
272
n cazul n care vectorul este numeric, se observ c metoda sort
ordoneaz lexicografic (de exemplu, 2007<345)
273
{ aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; sortat=true}
pas=pas+1 }
while(sortat)
document.write("Vector sortat crescator:"+"<BR>")
for(i=0;i<n;i++)
document.write(v[i]+" ")
</SCRIPT> </BODY> </HTML>
275
19. Interaciune JavaScript HTML
276
Figura 19.1. Apel funcie prin cod HTML
278
Funcia setTimeout realizeaz o pauz dup afiarea unei secvene, pn
la reluarea afirii. Funcia are 2 parametri: primul este numele funciei, apelat la
pauz, iar al doilea parametru este lungimea pauzei n milisecunde.
Funcia setTimeout() returneaz o referin, o valoare care este folosit ca
parametru pentru funcia clearTimeout(). Sintaxa funciei setTimeout() este:
ref = setTimout(nume_funcie, nr_milisecunde)
De exemplu, s presupunem c introducem un buton n pagin. La
apsarea butonului se va lansa o funcie care are inclus funcia setTimeout(), care
execut funcia la fiecare 2 secunde. Execuia funciei se va ncheia odat cu
nchiderea ferestrei.
<HTML><HEAD>
<SCRIPT language = "JavaScript">
function Mesaj(){
alert("Mesajul va fi afiat la 2 secunde")
ref = setTimeout("Mesaj",2000)}
</SCRIPT></HEAD>
<BODY>
<INPUT TYPE="BUTTON" value = "Click!" onclick = "Mesaj()">
</BODY></HTML>
279
<HTML><HEAD>
<SCRIPT language = "JavaScript">
function Oprire()
{clearTimeout(ref)}
function Mesaj()
{alert("Mesajul va fi afiat la 2 secunde")
ref = setTimeout("Mesaj",2000) }
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="BUTTON" value = "click!" onclick = "Mesaj()">
<INPUT TYPE="BUTTON" value = "STOP" onclick = "Oprire()">
</BODY>
</HTML>
280
Figura 19.5. Valori alternative ntr-o poziie
281
n JavaScript se pot valida informaiile introduse n paginile web, precum
i schimbarea dinamic a unui formular n timp ce acesta este afiat, putem activa
sau dezactiva elemente, se poate stabili o valoare prestabilit etc.
Un element al formularului devine un obiect n JavaScript. Un atribut al
elementului devine o proprietate a obiectului. Evenimentele se introduc ca
proprieti crora li se asociaz apelul funciei, care se va executa cnd se produce
evenimentul (clic pe un buton, selectarea unui buton radio, selectarea elementelor
unei liste sau mutarea cursorului pe un element etc.).
Cnd un element al formularului este selectat (dac este un edit, apare
cursorul de editare, dac este un buton, el se scufund) se spune ca el primete
focus-ul.
Evenimentul onfocus are loc cnd elementul primete focus-ul.
Evenimentul onblur are loc cnd elementul pierde focus-ul. Cnd
utilizatorul mut cursorul n afar, ieirea din afara ateniei se mai
numete i out of focus
Nu toate elementele pot primi focus-ul, de exemplu IMG. De obicei l
primesc elementele care permit utilizatorului s scrie ceva, excepie fcnd
butoanele.
282
Figura 19.6. Evenimentul onblur
283
Dac formularul are un nume, se poate face referirea prin nume, nu prin
indice:
[window]document.forms.test.nume_obiect_form.value
ne referim la valoarea elementului nume al formularului test.
De exemplu, vrem s afim valoarea butonului submit:
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function afisare_submit() {
alert ("Valoare buton transmitere:
"+document.forms.test.submit.value)
}
</SCRIPT>
</HEAD>
<BODY>
<FORM method="post" name="test">
Nume:<input type="text" name="Fnume"><br>
Email:<input type="text" name="Email"><br>
<input type="submit" name="submit" value="Transmit"
onclick="afisare_submit()">
</FORM></BODY></HTML>
284
Valoarea pltit va consta din produsul dintre cantitate i pre. Obiectele
CANTITATE i PRET capteaz (recepioneaz) evenimentul onchange (tag-ul
INPUT are atributul onchange) care apeleaz funcia calcul_valoare().
Codul pentru acest exemplu este dat n continuare:
<HTML>
<HEAD>
<SCRIPT language = "JavaScript">
function calcul_valoare() {
if (produse.cant.value.length > 0
&& produse.pret.value.length > 0)
{
produse.val.value = produse.cant.value * produse.pret.value
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="produse">
NUME_PRODUS: <INPUT type="text" name="Produs"><BR>
CANTITATE: <INPUT type="text" name="cant"
onchange="calcul_valoare()"><BR>
PRET: <INPUT type="text" name="pret"
onchange="calcul_valoare()">
<BR>
VALOARE: <INPUT type="text" name="val"><BR>
</FORM></BODY></HTML>
285
Astfel, s presupunem c avem un formular completat, iar n cazul n care
dorim s facem o schimbare n datele introduse putem folosi evenimentul
onchange. S considerm un formular cu date despre Universitate. Dac
modificm unul din elementele formularului, de exemplu, numrul de telefon sau
adresa, evenimentul onchange apeleaz o funcie care evideniaz prin formatare
elementul modificat. Codul pentru acest exemplu este:
<HTML><HEAD>
<SCRIPT language="JavaScript">
function formatare(obiect) {
obiect.style.color = "red"
obiect.style.background = "cyan"
obiect.style.fontStyle = "italic"
obiect.style.fontWeight = "bold" }
</SCRIPT></HEAD>
<BODY><PRE>
UNIVERSITATE: <INPUT type="text" name="univ" value="Spiru Haret"
onchange = "formatare(this)">
TELEFON: <INPUT type="text" name="tel" value="(021) 314 9431"
onchange="formatare(this)">
ADRESA: <TEXTAREA rows=2 cols=30 wrap="off"
onchange="formatare(this)">Str. Ioan Ghica nr. 13, sector 3, Bucureti,
ROMANIA</TEXTAREA>
EMAIL: <INPUT type="text" name="mail" value="info@spiruharet.ro"
onchange="formatare(this)">
</PRE>
</BODY><HTML>
286
n exemplul de mai sus se observ c dac se face o modificare asupra unei
csue de text, dup mutarea cursorului pe alt zon dect cea modificat (out of
focus), informaiile din csua modificat vor fi formatate conform funciei
formatare(obiect) cu culoarea roie, fundal cyan, italic i bold.
287
Figura 19.10. Obiectul checkbox
288
<HTML>
<HEAD>
<TITLE>CKECKBOX</TITLE>
<SCRIPT language="JavaScript">
function Selectie()
{
var i; Selectie=" "
for (i=0; i<Lista.length; i++)
if (Lista.options[i].selected==true)
Selectie +="Optiunea " + (i+1) +"; "
alert(Selectie)
}
function schimba_lista(buton)
{
if(buton == 1)
{
Lista.options[0].text= "Univ. Bucuresti"
Lista.options[0].value=1
Lista.options[1].text= "Univ. Politehnica"
Lista.options[1].value=2
Lista.options[2].text= "Univ. Studii Economice"
Lista.options[2].value=3
Lista.options[3].text= "Univ. Arhitectura"
Lista.options[3].value=4
}
if(buton ==2)
{
Lista.options[0].text="Spiru Haret"
Lista.options[0].value=1
Lista.options[1].text= "Dimitrie Cantemir"
Lista.options[1].value=2
Lista.options[2].text= "Romano-Americana"
Lista.options[2].value=3
Lista.options[3].text= "Titus Maiorescu"
Lista.options[3].value=4
}
}
</SCRIPT>
</HEAD>
<BODY >
<SELECT name="Lista" multiple size=2>
<OPTION value=1> Univ. Bucuresti
<OPTION value=2> Univ. Politehnica
<OPTION value=3> Univ. Studii Economice
<OPTION value=4> Univ. Arhitectura
289
</SELECT><BR>
<INPUT type="radio" name="Univ" value=1
onclick="schimba_lista(this.value)"> Univ. Stat
<INPUT type="radio" name="Univ" value=2
onclick="schimba_lista(this.value)"> Univ. Particulare
<BR><BR><BR>
<INPUT type="button" name="Selectie" value="Ce s-a selectat?"
onclick="Selectie()">
</BODY> </HTML>
290
<HTML> <HEAD>
<TITLE>ONSUBMIT</TITLE>
<SCRIPT language="JavaScript">
function CreazaParola( )
{ with (document.forms.Parole)
{alert("lungime nume " + Nume.value.length)
Parola.value = Nume.value.charAt (0) + Prenume.value.charAt (0) +
Nume.value.length }}
</SCRIPT> </HEAD>
<BODY >
<FORM name="Parole">
<PRE>
Nume: <INPUT type="text" name="Nume" >
Prenume: <INPUT type="text" name="Prenume" >
Parola: <INPUT type="hidden" name="Parola" >
<INPUT type="submit" name="Submit" value="OK"
onclick= "CreazaParola( )">
</FORM>
</BODY></HTML>
<HTML><HEAD><TITLE>DISABLED &
READONLY</TITLE><HEAD>
<SCRIPT language = "JavaScript">
function activeaza_parola() {
if (Nume.value.length > 0 &&
Prenume.value.length > 0)
Parola.disabled = false}
function creaza_parola()
{ Parola.readonly = false
Parola.value = Nume.value.charAt(0) + Prenume.value.charAt(0) +
Nume.value.lenght
Parola.readonly = true}
</SCRIPT></HEAD>
<BODY>
<FORM name="Parola" >
Nume: <INPUT type="text" name="Nume"
onchange="activeaza_parola()"><BR>
Prenume: <INPUT type="text" name="Prenume"
onchange="activeaza_parola()"><BR>
Parola: <INPUT type="text" name="Parola" disabled = true
readonly=true><BR>
Parola: <INPUT type="submit" name="SUBMIT" value="OK"
onsubmit="creaza_parola()">
</FORM>
</BODY></HTML>
292
Figura 19.11. Disabled i readonly
Se observ din bara de stare c parola nu mai este vizibil.
OBSERVAIE!
Majoritatea browser-elor admit elemente rollover. Pentru a testa dac
browser-ul poate utiliza astfel de elemente trebuie s se testeze obiectul
document.images, care e tip array i cuprinde toate imaginile din pagin n ordinea
n care au fost introduse.
Astfel, ne putem referi la prima imagine, de exemplu prin
document.images[0].
Testarea compatibilitii browser-ului cu elemente rollover se poate face
astfel:
if (document.images)
{ Browserul recunoate elementele rollover i folosirea lor
prin metoda direct }
else
{ Browserul nu recunoate elementele rollover}
294
</BODY></HTML>
OBSERVAII!
Dac atributul onclick din ambele metode (figurile 19.14 si 19.15) se
nlocuiete cu atributul ondblclick, efectul este acelai, diferena const
n faptul c trebuie executat dublu clic pe imagine pentru ca imaginea s
fie ncadrat cu un chenar de grosime 7px.
Prin metoda direct unui atribut i se atribuie instruciunea de atribuire
complet, n cazul nostru onclick = border=7
295
Instruciunea de atribuire (border = 7) trebuie neaprat sa fie inclus
ntre ghilimele sau ntre apostrofuri. Este indicat ca ntre ghilimele s fie cuprins
instruciunea de atribuire i ntre apostrofuri valorile atributelor.
297
Figura 19.15. Evenimente onmouseover i onmouseout
299
20. Elemente avansate JavaScript
300
Proprietatea style n JavaScript este tot de tip obiect. Obiectul style are la
rndul lui, alte obiecte corespunztoare atributelor de stil din CSS.
n JavaScript se folosete pentru a defini un stil pentru un obiect id-ul
scris cu litere mici, iar .class este folosit doar n HTML
Numele acestor obiecte sunt:
o numele atributelor corespunztoare din CSS, dar obligatoriu scrise
cu litere mici. De exemplu: color n CSS este tot color n
JavaScript
o dac numele din CSS a unui atribut are n componen caracterul
- (linie), atunci acesta este eliminat i ce urmeaz este scris cu
liter mare. De exemplu: font-size n CSS este fontSize n
JavaScript
Cu ajutorul limbajului JavaScript se pot schimba dinamic valorile
proprietilor (obiectelor) obiectului style
n continuare se vor prezenta exemple care vor proba cele menionate mai
sus.
1) n acest exemplu se dorete formatarea unui bloc de text atunci cnd se
d un dublu clic pe suprafaa lui. Pentru acesta obiectul DIV recepioneaz
evenimentul ondblclick, care va apela o funcie ce va formata textul din blocul
DIV, aa cum reiese din urmtorul cod:
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function stiluri() {
d.style.fontSize="40"
d.style.fontStyle="italic"
d.style.color="red"
p1.style.color="blue"}
</SCRIPT>
</HEAD>
<BODY>
<DIV id="d" ondblclick = "stiluri()">
Acesta este un text care se va formata conform stilurilor definite n funcia
stiluri(). Funcia este apelat de evenimentul ondblclick, care este un
atribut al elementului DIV. Se observ c va fi formatat dinamic i
paragraful cu id=p1
</DIV>
<P id="p1"> Acesta este un alt text care va fi colorat cu albastru
</P>
</BODY>
</HTML>
301
Figura 20. 1. Formatarea dinamic a unui text
2) n acest exemplu se realizeaz afiarea unui text, care iniial nu e vizibil
i treptat se coloreaz intens. Se utilizeaz codul RGB. Culoarea alb are codul
RGB(255,255,255) sau #FFFFF, iar bl are codul RGB(0,0,FF). <HTML><HEAD>
<STYLE>
#par { color:#FFFFFF; font-size:20; font-style:italic;}
</STYLE>
<SCRIPT language="JavaScript">
i=255, rel=0
function Aparitie()
{ i--
par.style.color=255*256*256+256*i+i
rel=setTimeout ("Aparitie()" , 5)
if(i==0) clearTimeout(rel)
p1.style.color="blue" }
</SCRIPT></HEAD>
<BODY onload="Aparitie() ">
<Div id="par"> Acesta este un text care se va lumina cind se incarca pagina
</Div>
<P id="p1">Acesta este alt text care suporta modificare</P>
</BODY></HTML>
302
3) n acest exemplu se afieaz un tabel care conine temperatura,
umiditatea i presiunea. Acestea vor defila pe vertical. Odat afiat o
caracteristic, aceasta va staiona o perioad pe ecran, dup care va disprea i va
aprea la sfritul celorlalte, dup care din nou totul se deplaseaz pe vertical.
Poziionarea este absolut, fa de colul stnga-sus. Pentru aceasta se folosete
atributul top.
Se folosete o funcie mutare(), care realizeaz deplasarea unei linii de
tabel. Dup ce aceasta dispare, executarea se oprete. Aceast funcie este apelat
de alt funcie schimbare(), care se execut la intervale egale de timp dup o
ateptare.
n felul acesta vor defila continuu valorile caracteristicilor. Defilarea se
poate face i pe orizontal, folosind, n acest caz, atributul left.
<HTML><HEAD>
<STYLE>
TH {background-color:"cyan"; color:"red"; width:300; height:100;}
#P1 {position:absolute; top:0; left:20}
#P2 {position:absolute; top:100; left:20}
#P3 {position:absolute; top:200; left:20}
</STYLE>
<SCRIPT language="JavaScript">
i=0; x=0; rel=0
x1=0; x2=100; x3=200
function mutare ()
{ P1.style.top=--x1
P2.style.top=--x2
P3.style.top=--x3
--x
if (x== -100)
{ switch (i)
{ case 0: x1=200; break;
case 1: x2=200; break;
case 2: x3=200; }
if(i ==2)
i=0
else i++
x=0 }
if (x==0) clearTimeout(rel)
else rel=setTimeout( "mutare ()" , 20) }
function schimba ()
{ mutare ()
setTimeout("schimba ()", 5000) }
</SCRIPT></HEAD>
<BODY onload="schimba ()">
<TABLE>
<TR id="P1"> <TH> Temperatura <TH> 10 Grade
303
<TR id="P2"> <TH> Umiditate <TH> 50%
<TR id="P3"> <TH> Presiune <TH> 754 mm coloana de mercur(Hg)
</TABLE>
</BODY></HTML>
Valori:
Parametri Efect activ= yes,1
dezactiv=no, 0
Butoane pentru directoare directories= 1 or yes
directories
standard ale browser-ului directories=0 or nu
Edit-ul care conine adresa location=1
location
fiierului HTML location=0
menubar=1
menubar Bara de meniuri
menubar=0
resizable=1
resizable Redimensionarea ferestrei
resizable=0
scrollbars=0
scrollbars Barele de derulare
scrollbars=1
status Bara de stare status=1 status=0
Bara de instrumente
toolbar toolbar=1 toolbar=0
standard
height Inlimea ferestrei n pixeli
width Limea ferestrei n pixeli
Coordonatele x, y ale
top, left coltului stnga-sus la care va fi n pixeli
afiat fereasta
306
OBSERVAIE!
Dac se dorete s se deschid mai multe ferestre pe ecran se poate folosi
un ciclu for care are n corpul lui deschiderea unei ferestre. Se creeaz un buton
care s apeleze o funcie care conine ciclul for. Primul parametru al metodei
open() este irul vid( ), presupunnd c dorim s se afieze ferestre vide. n cazul
n care n ferestre se afieaz anumite pagini web, nu se mai poate folosi un ciclu
for, ci fiecare fereastr trebuie deschis cu metoda open().
Urmtorul exemplu afieaz trei ferestre vide n fereastra curent:
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function Multiple_Ferestre()
{for (i=1; i<4; i++)
fer=window.open(" ","fer"+i,"width=100, height=100, status=yes,
resizable=yes, menubar=0")}
</SCRIPT></HEAD>
<BODY>
<INPUT type="button" value="Ferestre" name="Ferestre"
onclick="Multiple_Ferestre()">
</BODY></HTML>
308
Figura 20. 7. Metodele focus() i blur()
Metodele back(), forward(), stop() sunt mai puin folosite, avnd acelai
efect ca i butoanele browser-ului cu aceleai nume.
Dintre proprietile obiectului window, cea mai util este proprietatea
status(), care are ca efect afiarea valorii reinut de ea n bara de stare.
De exemplu, adugarea urmtoarei funcii la unul din exemplele de mai
sus are ca efect afiarea mesajului n bara de stare:
function Mesaj() {status=Testarea proprietii status}
309
20.3. Obiectul DOCUMENT
Obiectul document este i el, ca i obiectul window, un obiect des utilizat
n JavaScript. Despre unele metode i proprieti ale obiectului (document.write(),
document.images, document.forms etc.) s-a discutat n capitolele precedente.
n continuare se prezint proprietile principale ale obiectului document,
precum i cele mai importante metode ale sale.
Unele proprieti sunt de tip obiect, aa cum proprietatea document a
obiectului window este obiectul document.
Proprietatea all
Proprietatea all este cea mai important proprietate a obiectului document.
Este o proprietate de tip obiect, care are, la rndul ei, alte proprieti i metode.
Este un obiect vector ale tuturor elementelor care se gsesc ntr-o pagin, aa cum
forms, images sunt obiecte vector al tuturor formularelor, respectiv ale tuturor
imaginilor dintr-o pagin.
Fiecare element al vectorului all este tot un obiect. De exemplu, elemente
(obiecte) ale vectorului all sunt: HTML, HEAD, BODY, cte un element pentru
fiecare imagine (IMG), paragraf (P) etc.
Cele mai importante proprieti ale obiectului vector all sunt:
tagName reine tipul, de exemplu IMG, P etc. Dac exist, de
exemplu, o imagine ntr-o celul a unui tabel se va afia TABLE, TR,
TH sau TD, IMG
length indic numrul de elemente ale vectorului all
id afieaz id-ul elementelor pentru care atributul id a fost definit
310
Figura 20. 8. Proprietatea all
311
<HTML><HEAD>
<SCRIPT language="JavaScript">
function Numara() {
alert(document.all.tags("P").length)
for (i=0; i<document.all.tags("P").length; i++)
document.all.tags("P")[i].style.color="red"}
</SCRIPT></HEAD>
<BODY>
<P> paragraful 1 </P>
<P> paragraful 2</P>
<P> paragraful 3</P>
<SCRIPT language="JavaScript">
Numara()
</SCRIPT>
</BODY></HTML>
313
Metoda write() a fost prezentat n capitolul 17, avnd nevoie s fie
folosit n exemplificri. Amintim c ea este utilizat pentru a scrie n document i
se aplic sub forma document.write(text).
Dac textul conine tag-uri HTML, sau este un fiier html, browser-ul
interpreteaz tag-urile i le afieaz.
n exemplul de mai jos scrim citeva tag-uri html astfel:
<Script language=JavaScript>
document.write(<A href=http://www.edu.ro> Informatii MEC</A>)
document.write(<BR>)
document.write(<IMG src=flori.jpg>
</Script>
314
ANEXE
315
316
ANEXA A
Culori
317
DarkSalmon #E9967A
DarkSeaGreen #8FBC8F
DarkSlateBlue #483D8B
DarkSlateGray #2F4F4F
DarkSlateGrey #2F4F4F
DarkTurquoise #00CED1
DarkViolet #9400D3
DeepPink #FF1493
DeepSkyBlue #00BFFF
DimGray #696969
DimGrey #696969
DodgerBlue #1E90FF
FireBrick #B22222
FloralWhite #FFFAF0
ForestGreen #228B22
Fuchsia #FF00FF
Gainsboro #DCDCDC
GhostWhite #F8F8FF
Gold #FFD700
GoldenRod #DAA520
Gray #808080
Grey #808080
Green #008000
GreenYellow #ADFF2F
HoneyDew #F0FFF0
HotPink #FF69B4
IndianRed #CD5C5C
Indigo #4B0082
Ivory #FFFFF0
Khaki #F0E68C
Lavender #E6E6FA
LavenderBlush #FFF0F5
LawnGreen #7CFC00
LemonChiffon #FFFACD
LightBlue #ADD8E6
LightCoral #F08080
LightCyan #E0FFFF
LightGoldenRodYellow #FAFAD2
LightGray #D3D3D3
318
LightGrey #D3D3D3
LightGreen #90EE90
LightPink #FFB6C1
LightSalmon #FFA07A
LightSeaGreen #20B2AA
LightSkyBlue #87CEFA
LightSlateGray #778899
LightSlateGrey #778899
LightSteelBlue #B0C4DE
LightYellow #FFFFE0
Lime #00FF00
LimeGreen #32CD32
Linen #FAF0E6
Magenta #FF00FF
Maroon #800000
MediumAquaMarine #66CDAA
MediumBlue #0000CD
MediumOrchid #BA55D3
MediumPurple #9370D8
MediumSeaGreen #3CB371
MediumSlateBlue #7B68EE
MediumSpringGreen #00FA9A
MediumTurquoise #48D1CC
MediumVioletRed #C71585
MidnightBlue #191970
MintCream #F5FFFA
MistyRose #FFE4E1
Moccasin #FFE4B5
NavajoWhite #FFDEAD
Navy #000080
OldLace #FDF5E6
Olive #808000
OliveDrab #6B8E23
Orange #FFA500
OrangeRed #FF4500
Orchid #DA70D6
PaleGoldenRod #EEE8AA
PaleGreen #98FB98
PaleTurquoise #AFEEEE
319
PaleVioletRed #D87093
PapayaWhip #FFEFD5
PeachPuff #FFDAB9
Peru #CD853F
Pink #FFC0CB
Plum #DDA0DD
PowderBlue #B0E0E6
Purple #800080
Red #FF0000
RosyBrown #BC8F8F
RoyalBlue #4169E1
SaddleBrown #8B4513
Salmon #FA8072
SandyBrown #F4A460
SeaGreen #2E8B57
SeaShell #FFF5EE
Sienna #A0522D
Silver #C0C0C0
SkyBlue #87CEEB
SlateBlue #6A5ACD
SlateGray #708090
Snow #FFFAFA
SpringGreen #00FF7F
SteelBlue #4682B4
Tan #D2B48C
Teal #008080
Thistle #D8BFD8
Tomato #FF6347
Turquoise #40E0D0
Violet #EE82EE
Wheat #F5DEB3
White #FFFFFF
WhiteSmoke #F5F5F5
Yellow #FFFF00
YellowGreen #9ACD32
320
ANEXA B
Caractere n HTML
322
Ü Ü
Ý Ý
Þ Þ
ß ß
à à
á á
â â
ã ã
ä ä
å å
æ æ
ç ç
è è
é é
ê ê
ë ë
ì ì
í í
î î
ï ï
ð ð
ñ ñ
ò ò
ó ó
ô ô
õ õ
ö ö
ø ø
÷ ÷
ù ù
ú ú
û û
ü ü
ý ý
þ þ
323
ÿ ÿ
Ă
ă
Œ Œ
œ œ
Š Š
š š
Ţ
ţ
Ÿ Ÿ
ˆ ˆ
˜ ˜
   
   
   
‍ ‍
‎ ‎
‏ ‏
– –
— —
‘ ‘
’ ’
‚ ‚
“ “
” ”
„ „
† †
‡ ‡
… …
‰ ‰
‹ ‹
› ›
€ €
324
ANEXA C
CSS - Specificaii de stil
Background
Proprietate Valoare
background-color; background-image
background background-repeat; background-attachment;
background-position
background-attachment scroll; fixed
background-color color-rgb; color-hex; color-name; transparent
background-image url(URL); none
top left; top cente;r top right;
center left; center center; center right;
background-position
bottom left; bottom center; bottom right;
x% y%; xpos ypos
background-repeat repeat; repeat-x; repeat-y; no-repeat
Borduri
Proprietate Valoare
border border-width; border-style; border-color
border-bottom border-bottom-width; border-style; border-color
border-bottom-color border-color
border-bottom-style border-style
border-bottom-width thin; medium; thick; length
border-color color
border-left border-left-width; border-style; border-color
border-left-color border-color
border-left-style border-style
border-left-width thin; medium; thick; length
border-right border-right-width; border-style; border-color
border-right-color border-color
border-right-style border-style
border-right-width thin; medium; thick; length
none; hidden; dotted; dashed; solid; double
border-style
groove; ridge; inset; outset
border-top border-top-width; border-style; border-color
border-top-color border-color
border-top-style border-style
325
border-top-width thin; medium; thick; length
border-width thin; medium; thick; length
Clasificri
Proprietate Valoare
clear left; right; both; none
url; auto; crosshair; default; pointer; move;
e-resize; ne-resize; nw-resize; n-resize;
cursor
se-resize; sw-resize; s-resize; w-resize
text; wait; help
none;inline; block; list-item; run-in; compact
marker; table; inline-table; table-row-group
display table-header-group; table-footer-group
table-row; table-column-group; table-column
table-cell; table-caption
float left; right; none
position static; relative; absolute; fixed
visibility visible; hidden; collapse
Dimensiuni
Proprietate Valoare
height auto; length; %
line-height normal; number; length; %
max-height none; length; %
max-width none; length; %
min-height length; %
min-width length; %
width auto; length; %
Fonturi
Proprietate Valoare
font-style; font-variant; font-weight
font font-size/line-height; font-family; status-bar
caption;icon;menu; message-box; small-caption
font-family family-name; generic-family
xx-small; x-small;small; smaller
font-size medium; large; x-large; xx-large;
larger; length; %
font-size-adjust none; number
font-stretch normal; wider; narrower; ultra-condensed;
326
extra-condensed; condensed; semi-condensed;
semi-expanded; expanded;
extra-expanded;ultra-expanded
font-style normal; italic; oblique
font-variant normal; small-caps
normal; bold; bolder; lighter;
font-weight
100;200;300;400;500;600;700;800;900
Coninut generat
Proprietate Valoare
string; url; counter(name); open-quote;
close-quote;no-open-quote; no-close-quote;
content counter(name, list-style-type); attr(X)
counters(name, string);
counters(name, string, list-style-type)
counter-increment none; identifier number
counter-reset none; identifier number
quotes none; string
Liste
Proprietate Valoare
list-style-type; list-style-position;
list-style
list-style-image
list-style-image none; url
list-style-position inside; outside
none; disc; circle; square; decimal
decimal-leading-zero; lower-roman
upper-roman; lower-alpha; upper-alpha
list-style-type
lower-greek; lower-latin; upper-latin;hebrew
armenian; georgian; cjk-ideographic
hiragana; katakana; hiragana-iroha
marker-offset auto; length
Margini
Proprietate Valoare
margin-top; margin-right
margin
margin-bottom; margin-left
margin-bottom auto; length; %
327
margin-left auto; length; %
margin-right auto; length; %
margin-top auto; length; %
Outline
Proprietate Valoare
outline outline-color; outline-style; outline-width
outline-color color; invert
none; dotted; dashed; solid; double; groove;
outline-style
ridge; inset; outset
outline-width Thin; medium; thick; length
Padding
Proprietate Valoare
padding-top; padding-right
Padding
padding-bottom; padding-left
padding-bottom length; %
padding-left length; %
padding-right length; %
padding-top length; %
Poziionare
Proprietate Valoare
bottom auto; %; length
clip shape; auto
left auto; %; length
overflow visible; hidden; scroll; auto
position static; relative; absolute; fixed
right auto; %; length
top auto; %; length
baseline; sub; super; top; text-top; middle;
vertical-align
bottom; text-bottom; length; %
z-index auto; number
Tabele
Proprietate Valoare
collapse
border-collapse
separate
328
border-spacing length length
caption-side top; bottom; left; right
empty-cells show; hide
table-layout auto; fixed
Text
Proprietate Valoare
color color
direction ltr; rtl
line-height normal; number; length; %
letter-spacing normal; length
text-align left; right; center; justify
text-decoration none; underline; overline; line-through; blink
text-indent length; %
text-shadow none; color; length
text-transform none; capitalize; uppercase; lowercase
unicode-bidi normal; embed; bidi-override
white-space normal; pre; nowrap
word-spacing normal; length
329
330
BIBLIOGRAFIE SELECTIV
331
Redactor: Cosmin COMARNESCU
Tehnoredactare: Marcela OLARU
Coperta: Rodica Florentina NICULESCU
Cornelia PRODAN
332