Laborator AI
Laborator AI
<html>
<head>
</head>
<body>
...........
</body>
</html>
<head>
<base href="http://www.ace.ucv.ro/index.php" target="_top">
</head>
Secţiunea HEAD a unui document HTML este prezentată în figura 5.
<head>
<title> Curs HTML </title>
<META name="author" content="Camelia Maican">
<META name="copyright" content="© 2010 ACE">
<META name="keywords" content="curs, html, anul_IV, ZI">
</head>
Trecerea pe o linie nouă se face la comanda explicită prin marcajul <br> (de la "line break" care
înseamnă întrerupere de linie) care trebuie să apară în pagină.
Pentru centrarea titlului în cadrul paginii se foloseşte marcajul <center> iar pentru terminarea
acţiunii se utilizează </center>.
Există posibilitatea de a introduce comentarii, folosind marcajul < ! - - textul comentariului - - >
Folosind marcajele prezentate programul va arata ca în figura7.
<!--Programul 1-->
<html>
<head>
<title><center>PROIECT</center></title>
</head>
<body>
...........
</body>
</html>
B. Culoarea textului
Culoarea textului se realizează prin intermediul atributului text tot prin două modalităţi:
printr-un nume de culoare, conform sintaxei:
<body text="gray">
<!—Programul 2-->
<html>
<head>
<title> Curs HTML </title>
<META name="author" content="Camelia Maican">
<META name="copyright" content="© 2010 ACE">
<META name="keywords" content="curs, html, anul_IV">
</head>
Poziţionarea conţinutului paginii Web faţă de marginile ferestrei browser-ului se poate face cu
ajutorul a două atribute leftmargin şi topmargin (care sunt extensii Microsoft şi nu funcţionează decât în
Internet Explorer 3+):
Textul afişat este caracterizat de următoarele atribute:
marime (size)
culoare (color)
font (style)
Aceste atribute apar în cadrul marcajului <basefont>, conform sintaxei :
<!—Programul 4-->
<html>
<head>
<title><h3><center>FONT </center> /h3></title>
</head>
<body> <pre>
<font size=7 color="green" face="Times New
Roman"><b><u>Cuprins </u></b> </font><br>
<font size=5 color="blue" face="Times New Roman">
<b>Capitolul 1</b> </font><br>
<font size=4 color="red" face="Arial">
Paragraful 1.1.
Paragraful 1.2. </font><br>
</pre>
</body>
</html>
Puteti alinia la stanga (left), dreapta (right) sau la mijlocul (center) pagini aproape orice element.
<h2 align="center">Titlu centrat </h2>
Vizualizare
Titlu centrat
Alete exemple:
<h2 align="left">Titlu aliniat la stanga </h2>
<h2 align="center">Titlu centrat </h2>
<h2 align="right">Titlu aliniat la dreapta </h2>
Vizualizare
Titlu aliniat la stanga
Titlu centrat
Titlu aliniat la dreapta
Paragraful
Tag-ul pentru paragraf este <p> </p>.
Vizualizare
Paragraful este un elemet de baza in editare de text. Tag-ul pentru
paragraf este <p>.
Acesta va plasa o linie goala deasupra si dedesuptul textului
pentru a fi evidentiat, iar browser-ul il va interpreta ca atare.
Paragraf incadrat, justify
Spatii multiple
Exista insa o entitate care poate fi introdusa pentru a afisa mai mult de un spatiu.
<p> In acesta fraza au fost introduse
mai multe spatii.<p>
Vizualizare
In acesta fraza au fost introduse mai multe spatii.
Un salt in line
<p>
Vlad Ionescu <br />
Calea Bucuresti No.1 <br />
Craiova, Romania <br />
</p>
Vizualizare
Vlad Ionescu
Calea Bucuresti No.1
Craiova, Romania
Deasemenea se poate folosi pentru a evidentia o semnatura ca de exemplu la sfarsitul unei scrisori.
<p>
Multumesc anticipat,<br />
<br />
<br />
Vlad Ionescu <br />
Manager
</p>
Vizualizare
Multumesc anticipat,
Vlad Ionescu
Manager
O linie orizontala.
<hr/>
Utilizati
<hr/><hr/>
Cu
<hr/>
Moderatie
<hr/>
Vizualizare
Utilizati
Cu
Moderatie
Linia orizontala poate deveni utila in diferite circumstante, ca de exemplul o nota de subsol:
<hr />
<p>1. "The Hobbit", JRR Tolkein.<br />
2. "The Fellowship of the Ring" JRR Tolkein.</p>
Vizualizare
Liste ordonate
Foloseste tag-ul <ol>pentru a incepe o lista ordonata. Prin punerea <li></li> (list item) intre tagurile <ol>
si </ol> se semnalizeaza browser-ului elementele listei.
<h4 align="center">Obiective</h4>
<ol>
<li>Sa gasesc o slujba </li>
<li>Sa iau bani multi </li>
<li>Sa ma mut in alt oras </li>
</ol>
Vizualizare
Obiective
1. Sa gasesc o slujba
2. Sa iau bani multi
3. Sa ma mut in alt oras
Se poate incepe lista cu orice alt numar, specificandu-l insa cu ajutorul atributului start.
<h4 align="center">Obiective</h4>
<ol start="3" >
<li>Sa gasesc o slujba </li>
<li>Sa iau bani multi </li>
<li>Sa ma mut in alt oras </li>
</ol>
Vizualizare
Obiective
3. Sa gasesc o slujba
4. Sa iau bani multi
5. Sa ma mut in alt oras
<ol type="a">
<ol type="A">
<ol type="i">
<ol type="I">
Vizualizare
Numere romane cu Numere romane cu
Litere mici Majuscule
litere mici majuscula
a. Un loc de A. Un loc de i. Un loc de munca I. Un loc de munca
munca munca ii. Bani II. Bani
b. Bani B. Bani iii. Alt oras III. Alt oras
c. Alt oras C. Alt oras
<ul type="square">
<ul type="disc">
<ul type="circle">
Liste de definitii
Se pot face liste de definitii folosind tag-ul <dl>. Aceasta lista reda cuvantul deasupra definitiei. Este
indicat sa ingrosam cuvantul pentru a fi mai bine evidentiat.
Listele de tip definiţie sunt introduse prin intermediul marcajelor:
<dl>...</dl> - lista definitii (definition list)
<dt> - termenul definit (definition term)
<dd> - definitie (definition)
<dl>
<dt><b> Reţea de calculatoare </b></dt>
<dd> ansamblu de calculatoare autonome, interconectate prin
intermediul unor medii de comunicaţie.</dd>
<dt><b> Domeniu </b></dt>
<dd> Nume unic prin care se identifica un site pe Internet </dd>
</dl>
Link-uri
Pentru a realiza o legătură hipertext se utilizează tag-ul ancoră: <A>……</A>, care include şi atribute.
Unul dintre aceste atribute este: HREF (Hypertext REFerence), utilizat pentru a specifica URL-ul
documentului ţintă. Sintaxa este:
Link-uri text
Pentru a seta inceputul si sfarsitul unui anchor se poate folosi <a> </a>.
Atributul target spune browser-ului daca trebuie sa deschida noua pagina intr-o noua fereastra sau in
aceeasi fereastra.
Legătura internă
Se realizează între elemente ale aceluiaşi document sau către un anumit punct ţintă al altui document.
Aceasta implică:
1) crearea unei ancore în punctul ţintă:
Ancorele din punctul ţintă nu sunt afişate diferit faţă de restul documentului.
2) realizarea unei legături prin care se specifică numele fişierului (dacă legătura se face într-un punct
al altui fişier) şi paragraful:
Se utilizează acest tip de legătură în cadrul unui document organizat pe secţiuni. La începutul
documentului poate fi prezentat conţinutul.
Legătura locală
Valoarea "fişier_local" reprezintă adresa fişierului local către care se face legătura, acesta va fi încărcat.
Fişierul local se precizează folosind:
• calea relativă, serverul va căuta documentul începând din acelaşi director ca şi documentul de la care a
fost apelată legătura;
• calea absolută, când documentul va fi identificat începând cu directorul rădăcină.
Legătura externă
Ţinta unei legături hipertext poate fi: un fişier HTML, o imagine externă (GIF, JPEG sau PostScript), un
film sau text (căruia i s-a marcat o ancoră).
Ancore
Numele ancorelor nu pot conţine spatii şi trebuie sa fie unice în pagina respectivă.
Mai departe trebuie sa formulam codul link-ului punand innaintea numelui anchor-ului semnul diez (#).
Link-uri de e-mail
In cazul in care un subiect nu este de ajuns si vreti sa adaugati ceva si la continutul email-ului, o puteti
face cu ajutorul urmatorului cod:
<a
href="mailto:[email protected]?subject=Nelamuriri&body=Scrie
aici daca ai nelamuriri " >Nelamuriri aici </a>
L2 AI HTML
<html>
<head>
<title>Inserarea unui fişier audio ca referinţă </title>
</head>
<body>
<p> Execută click pe legătura următoare
<a href="sunet.au">
<p> Fisierul audio va fi rulat în cadrul unei aplicaţii existente pe
calculator cum ar fi Media Player
</body>
</html>
Figura 19. Înserarea unui fişier audio ca referinţă
<html>
<head>
<title>Inserare secventa audio cu embed</title>
</head>
<body>
<embed src="aaa.wav" width="200" height="200"
autostart=false hidden=false loop=true volume=50>
</body>
</html>
In HTML 4 embed este înlocuit de marcajul object. Există trei formate de fişiere care sunt
recomandate pentru utilizarea cu acest marcaj: wav, au şi midi.
Marcajul bgsound va rula o secvenţă audio în fundal. Acest marcaj, fiind o extensie Microsoft, va
funcţiona numai în Internet Explorer.
<html>
<head>
<title>Inserare secventa audio cu bgsound</title>
</head>
<body>
<bgsound src="aaa.wav" loop=10>
</body>
</html>
Figura 21. Înserarea unui fişier audio utilizând marcajul bgsound
Frame
In general frame-urile se folosesc pentru a afisa un meniu pe de o parte iar continutul pe de o alta parte.
Atunci cand cineva da un clik pe un link din meniu se va deschide o alta pagina in partea de continut.
Vom exempifica toate acestea cu ajutorul codului urmator:
<html> <head></head>
<frameset cols="30%,*">
<frame src="menu.html">
<frame src="content.html">
</frameset>
</html>
- frameset - Este tagul care stabileste caracteristicile frame-ului. Frame-urile individuale vor fi definite
inauntrul lui.
- frameset cols="#%, *"- "Cols" stabileste latimea pe care fiecare frame o va avea. In exemplul anterion
am stabilit ca primul frame (meniul) va ocupa 30% din suprafata afisata, si am folosit semnul " * " pentru
a indica browser-ului ca in restul paginii ramase se va afisa continutul paginii.
- frame src="" - adresa fisierelor care vor fi afisate ca meniu si respectiv continut.
<html><head></head>
<frameset rows="20%,*">
<frame src="title.html">
<frameset cols="30%,*">
<frame src="menu.html">
<frame src="content.html">
</frameset> </html>
frameset rows="#%, *"- "rows" stabileste inaltimea fiecarui frame care va fi afisat. In exemplul anterior
am ales ca primul frame va fi 20% iar restul de spatiu ramas va fi impartit intre menu.html si
content.html.
<html><head></head>
<frameset border="0" frameborder="0" framespacing="0"
rows="20%,*">
<frame src="title.html">
<frameset border="0" frameborder="0" framespacing="0"
cols="30%,*">
<frame src="menu.html">
<frame src="content.html"> </frameset> </html>
<html><head>
<base target="content">
</head>
<frameset rows="20%,*">
<frame name="title" src="title.html">
<frameset cols="30%,*">
<frame name="menu" src="menu.html">
<name="content" src="content.html">
</frameset>
</html>
Noresize si scrolling
Frame-ul se mai poate personaliza inca putin folosind atributele noresize si scrolling.
<html><head></head>
<frameset border="2" frameborder="1" framespacing="2"
rows="20%,*">
<frame src="title.html" noresize scrolling="no">
<frameset border="4" frameborder="1" framespacing="4"
cols="30%,*">
<frame src="menu.html" scrolling="auto" noresize>
<frame src="content.html" scrolling="yes" noresize>
</frameset> </html>
<table border="1">
<tr><td>Row 1 Cell 1</td><td>Row 1 Cell 2</td></tr>
<tr><td>Row 2 Cell 1</td><td>Row 2 Cell 2</td></tr>
</table>
Vizualizare
Row 1 Cell 1 Row 1 Cell 2
Row 2 Cell 1 Row 2 Cell 2
Continutul va fi plasat in interiorul casutelor tabelului. O casuta este ceea ce se afla intre <td> si </td>.
Atributul border stabileste latimea marginii tabelului.
Tabele asimetrice
Pentru a forma tabele asimetrice vom folosi "rowspan" pentru a traversa mai mute linii si "colspan"
pentru a traversa mai multe coloane. Deasemenea daca vrem ca prima linie sa serveasca de titluri pentru
toate coloanele vom folosi tagul <th>. Acestea vor fi scrise cu litere ingrosate dupa cum vom vedea in
exemplu urmator:
<table border="1">
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
</tr>
<tr><td rowspan="2">Row 1 Cell 1</td>
<td>Row 1 Cell 2</td><td>Row 1 Cell 3</td></tr>
<tr><td>Row 2 Cell 2</td><td>Row 2 Cell 3</td></tr>
<tr><td colspan="3">Row 3 Cell 1</td></tr>
</table>
Vizualizare
Column 1 Column 2 Column 3
Row 1 Cell 2 Row 1 Cell 3
Row 1 Cell 1
Row 2 Cell 2 Row 2 Cell 3
Row 3 Cell 1
Spatierea celulelor
Cu ajutorul atributelor "cellpadding" si "cellspacing" vom defini distanta dintre celule. "cellspacing"
stabileste marimea marginii, iar "cellpandding" stabileste distanta dintre margine si continut. In exemplu
urmator a fost adaugata deasemenea putina culoare.
Exemplul .
<TABLE border="1">
<CAPTION> Exemplu de tabel</CAPTION>
<TR><TH rowspan="2">Disciplina<TH colspan="2">Anul de studiu
<TH rowspan="2">Forma de <BR>evaluare
<TR><TH>An I<TH>An II
<TR><TH>Sisteme de calcul<TD>sem I<BR>sem II<TD> -<TD>Examen
<TR><TH>Tehnologii Web<TD> -<TD>sem II<TD>Colocviu
</TABLE>
Antetul tabelului se descrie prin tag-ul <TH>… </TH> care are aceleaşi atribute ca şi <TD>.
Textul din acest tag este automat centrat şi boldit.
Titlul tabelului se specifică prin tag-ul:
<CAPTION ALIGN=TOP|BOTTOM>… </CAPTION>
Exemplul. Tabel ale cărui celule conţin elemente de tipuri diferite: legături hipertext, imagini, formular,
liste şi text.
<HTML><HEAD>
<TITLE>Tabel in pagina HTML</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=3 CELLSPACING=2 CELLPADDING=10 >
<TR ALIGN=CENTER>
<TD><A HREF="http://www.infocib.ase.ro">CIBERNETICA,
STATISTICA SI
</A>
<BR><A HREF="http://ie.ase.ro">INFORMATICA
ECONOMICA</A></TD>
<TD>Catedrele <BR>facultatii</TD>
<TD></TD>
</TR>
<TR>
<TD><IMG SRC="WWW.GIF"></TD>
<TD>
<UL>
<LI>Informatica Economica</LI>
<LI>Matematica</LI>
<LI>Statistica</LI>
</UL></TD>
<TD ALIGN=CENTER>
<A HREF ="http://www.infocib.ase.ro">
<IMG SRC="Revenire.gif" ></A></TD>
</TR>
<TR>
<TD ALIGN=CENTER><I>Introduceti numele</I>
<BR><I>dumneavoastra</I></TD>
<TD ALIGN=LEFT><FORM method="post"
action=" "><INPUT name="nume"></TD>
<TD ALIGN=CENTER><INPUT type="submit"
value="OK"></FORM></TD>
</TR>
<CAPTION align="bottom">Exemplu de <B>tabel</B></CAPTION>
</TABLE>
</BODY>
</HTML>
Figura 5. Tabel în pagină HTML
Un layout nu are prea multe optiuni. Pe de alta parte un table este foarte folositor. Intr-un tabel poate fi
introdus cam orice element, chiar si un alt tabel.
<table id="shell" bgcolor="black" border="1" heigh="200"
width="300">
<tr><td> <table id="inner" bgcolor="white" heigh="100"
width="100">
<tr><td>Tables inside tables!</td></tr>
</table> </td></tr></table>
In afara de o culoare solida pentu fond, se poate folosi la fel de bine o fotografie. Pentru a face acest lucru
urmareste cu atentie urmatorul exemplu.
Vizualizare
Formulare
Formularele (chestionarele) sunt instrumente oferite prin limbajul HTML pentru a genera pe ecran zone
de dialog cu cititorul documentelor Web. Un formular reprezintă doar o interfaţă pentru captarea
informaţiilor, el necesită elemente pentru tratarea datelor colectate.
Prelucrarea finală a datelor se execută pe server, de exemplu, prin programele denumite CGI (Common
Gateway Interface). Altfel spus, CGI asigură interacţiunea server-navigator în sensul personalizării
rezultatelor prin diverse prelucrări asupra elementelor din paginile Web.
Prin intermediul tag-urilor HTML se descriu zonele formularului, care vor fi completate de utilizator.
unde:
Valorile cel mai frecvent utilizate pentru tip_m sunt: GET şi POST.
Când se utilizează metoda GET şirul de caractere constituit din ansamblurile nume câmp şi valoare este
adăugat la URL-ul scriptului care se va executa. Separatorul între numele scriptului şi restul şirului de
caractere îl reprezintă caracterul ?. Deoarece majoritatea browserelor afişează URL curent, acest şir de
caractere va fi vizibil. Din această cauză se preferă metoda POST, când şirul de caractere este trimis către
server printr-o secvenţă HTTP specială. De exemplu, dacă tag-ul de început este:
http://www.ace.ucv.ro/dir/nume_script? câmp1=valoare1&câmp2=valoare2&câmp3=valoare3…
• Atributul ACTION=URL_cgi indică locul unde se emite informaţia, unde se găseşte scriptul care se va
executa. Valoarea sa este reprezentată prin URL-ul scriptului.
− indică scriptului numele formularului care a trimis datele, în situaţia când mai multe formulare există în
acelaşi document;
− identifică un formular, prin numele său, pentru a putea fi referit prin funcţiile JavaScript.
• Atributul TARGET=cadr specifică fereastra sau cadrul (frame) în care se va afişa rezultatul execuţiei
scriptului. În absenţa atributului TARGET se înlocuieşte pagina curentă.
Textul încadrat de <FORM> şi </FORM> va conţine un ansamblu de comenzi: INPUT, SELECT etc.
Tag-uri pentru definirea intrărilor într-un formular
Sintaxa generală a tag-ului care defineşte un câmp pentru introducerea datelor într-un
formular este:
• Atributul NAME permite definirea numelor, în scopul identificării datelor care vor fi
trimise către server. Într-un formular se utilizează o singură dată acelaşi nume.
Intrarea text este cel mai simplu tip de intrare într-un formular. Zona de introducere date
acceptă un cuvânt sau o linie de text. Atributele sunt:
• VALUE="val", atribut opţional care permite predefinirea conţinutului din câmpul text,
• SIZE ="n", atribut opţional prin care se stabileşte lungimea câmpului de intrare text (în
caractere);
• MAXLENGTH ="m", atribut opţional prin care se limitează numărul caracterelor care pot
Exemplul 7.
<FORM METHOD="Post" ACTION="http://www. …. ">
SIZE="10" MAXLENGTH="15">
</FORM>
Exemplul 8.
<FORM METHOD="Post" ACTION="http://www.infocib …. ">
Intrare: textarea se utilizează pentru introducerea unui text multilinie. De data aceasta tag-ul
<INPUT TYPE="text"> este înlocuit cu:
Atributele sunt:
• ROWS="r", specifică numărul de rânduri care pot fi afişate, din textul care se va
introduce;
Exemplul 9.
<FORM METHOD="Post" ACTION="http://www... ">
</TEXTAREA>
</FORM>
Când numărul liniilor şi al coloanelor introduse depăşesc pe cele prevăzute a fi afişate se utilizează
scrollbars.
Intrarea meniu: SELECT are loc selecţia unei intrări din meniu. De data aceasta se utilizează
<SELECT NAME="nume_câmp">
……..
</SELECT>
Atributele sunt:
• OPTION, prin care se specifică o opţiune a meniului;
• VALUE="v", atribut opţional prin care se specifică valoarea opţiunii emise spre server
• SELECTED, atribut opţional prin care se specifică prima opţiune afişată a meniului (dacă
<SELECT NAME="evaluare">
<OPTION>Foarte bun
<OPTION SELECTED>Bun
<OPTION>Mediu
<OPTION>Slab
<OPTION>Foarte slab
</SELECT>
</FORM>
Intrare meniu: SELECT cu SIZE permite alegerea multiplă dintr-o listă de opţiuni.
Diferenţa faţă de situaţia anterioară constă în utilizarea opţiunilor: SIZE, prin care se specifică numărul de
linii afişate şi MULTIPLE, care permite o selecţie multiplă.
Exemplul 11.
<FORM METHOD="Post" ACTION="http://www.…. ">
Doreşti sa cumperi:
<OPTION> Îmbracaminte
<OPTION> Încaltaminte
</SELECT>
</FORM>
Intrarea buton: checkbox (casetă de control), principiul de introducere a datelor este: dacă
Exemplul 12.
<FORM METHOD="Post" ACTION="http://www.…. ">
<P>
</FORM>
Intrare buton: radio selectează una dintre posibilităţile existente. Sunt cazuri când trebuie aleasă o
opţiune din mai multe, tipul câmpului de intrare este definit prin atributul TYPE="radio". Alte atribute:
• VALUE="v", atribut necesar pentru a indica valoarea asociată butonului, dacă acesta este selectat.
Valoarea specificată prin atributul NAME identifică blocul de butoane;
Exemplul 13.
<FORM METHOD="Post" ACTION="http://www…. ">
WIN_NT
</DL>
</FORM>
Intrarea buton: reset/submit, prin activarea acestor câmpuri are loc ştergerea tuturor zonelor de intrare
din formular (se vor regăsi valorile iniţiale), respectiv transmiterea datelor către server. Butonul SUBMIT
transferă informaţia, din formularul completat, la URL specificat prin atributul ACTION al tag-ului
<FORM…>. Atributul opţional VALUE se utilizează pentru afişarea unui text pe buton.
Exemplul 14.
<FORM METHOD="Post" ACTION="http://www.…. ">
---------------
</FORM>
Atributul VALUE="v" este necesar pentru a se specifica valoarea textului ascuns, care va fi
Exemplul 15.
<FORM METHOD="Post" ACTION="http://www.…. ">
Nu se va vedea nimic
</FORM>
<HEAD>
<BODY>
<H1 ALIGN=CENTER>CHESTIONAR</H1>
<UL>
activitate:</H2>
<OPTION>EDUCATIE/INVATAMINT
<OPTION>INFORMATICA
<OPTION>SANATATE
<OPTION>COMERT
<OPTION>SERVICII PUBLICE
<OPTION>FINANTE
<OPTION>CHIMIE
<OPTION>CONSTRUCTII
<OPTION>ALTE DOMENII
</SELECT>
<OPTION>DIRECTOR
<OPTION>PROFESOR
<OPTION>ADMINISTRATOR
<OPTION>INGINER
<OPTION>MUNCITOR
<OPTION>CERCETATOR
<OPTION>SEF COLECTIV
<OPTION>ALTE
</SELECT>
<P>
</FORM>
</HTML>
Figura 3. Formular în pagina HTML
CSS L1
Recomandare:
Se recomanda sa se scrie toate aceste propietati una sub alta pentru o mai buna citire ulterioara a codului. De asemenea se
recomanda sa puneti punct si virgula dupa toate proprietatile elementului chiar daca este ultima dintr-un sir sau daca
elementul are o singura proprietate. Luand in calcul acestea codul CSS ar deveni urmatorul:
p{
text-align:right;
color:green;
font-family:"times new roman";
}
O alta regula CSS spune ca mai multe elemente cu aceleasi proprietati se pot grupa dupa cum urmeaza:
h1, h2, h3, p {
font-family:arial;
color:green;
}
Comentariile in CSS au aceasi functie ca si comentariile HTML, de a specifica ce am facut intr-o anumita expresie, sau
daca lipseste ceva sau orice altceva ne trece prin minte.
Atributul class
Clasele de elemnte in CSS pot fi stabilite pentru un singur tag HTML sau pentru orice alt tag care are la atributul class
valoarea stabilita anterior. Desi suna putin cam complicat este chiar simplu. Sa ne uitam la urmatorul exemplu care
stabileste o clasa in CSS.
p.center {text-align:center}
p.right {text-align:right}
Cu aceasta bucata de cod CSS am stabilit doua clase de paragrafe, unul centrat si altul aliniat la dreapta. Acum le vom
aplica in HTML.
.center {text-align:center}
Ar trebui mentionat ca numele clasei ".center", este un nume generic si nu are nimic de-a face cu actiunea asupra unui tag.
Cu toate acestea, va sfatuiesc sa folositi nume descriptive si intuitive. Sunt mult mai simple si servesc mai bine la
intelegerea ulterioara a codului CSS
Nota:
Inceperea numelui cu un numar NU este recomandata. Clasele denumite gen: ".165464" sau ".6ceva" sunt interpretate doar
de IE
CSS - Id
Id-ul se foloseste la fel ca si class. De fapt singura diferenta intre class si id este sintaxa de definire. Vom folosi un diez (#)
in loc de punct pentru a defini id-ul in CSS
#center {
text-align:center;
color:blue;
font-family:"sans serif";
}
<head>
<link rel="stylesheet" type="text/css" href="fisier_extern.css" />
</head>
Un fisier CSS se poate scrie in orice editor de text, notepad, notepad++, word, macromedia, etc dar trebuie salvat cu
extensia ".css"
Un exemplu simplu de cod CSS ar fi urmatorul :
CSS intern
Codul CSS in head, nu ar trebui folosit prea mult, cu exceptia faptului ca aveti o pagina care are nevoie de un stil propriu
si nu il imparte cu nici o alta pagina.
Codul CSS intern este acelasi ca si la cel introdus intr-un CSS extern., cu exceptia unor taguri speciale care il incapsuleaza.
Dar sa aruncam o privire la exemplul urmator.
<head>
<style type="text/css">
body { background-image: url("img/imagine.png"); }
hr { color: #efefef; }
p { margin-left:15px;}
</style>
</head>
Dupa cum am mentionat anterior, pentru a plasa CSS in HTML vom folosi tagul <style> impreuna cu atributul
type="text/css", pe care le vom pune in sectiunea head a documentului HTML.
CSS inline
CSS inline nu inseamna nici mai mult nici mai putin decat CSS in interiorul tagului HTML. Folosind CSS-ul sub aceasta
forma vom pierde toate avantajele pentru care a fost creat si anume pentru a nu amesteca tagurile HTML cu formatarea si
prezentarea lor. Exista totusi si avantaje in a folosi CSS-ul in aceasta maniera dupa cum vom vedea. Dar mai intai sa vedem
cum anume se poate introduce CSS intr-un tag HTML.
Observatie:
Dupa cum se observa in exemplul anterior valoarea fontului este o valoare compusa din trei cuvinte. In acest caz in loc de
ghilimele duble am folosit ghilimele simple pentru a evita conflictul cu ghilimele duble folosite pentru a incapsula valoarea
atributului style.
Sa mai aruncam o privire peste exemplul in discutie:
style="text-align:right;color:green;font-family:`times new
roman`;margin-left:15px;"
Daca am folosii acelasi tip de ghilimele peste tot, browser-ul ar intrerpreta sfarsitul valorii inainte de vreme. Iata bucata de
cod CSS care va fi interpretata de browser:
style="text-align:right;color:green;font-family:"
Restul codului CSS fiind ignorat.
Exemplu 1:
<head>
<title> Formatarea textului in head</title>
<style type="text/css">
p {color: white; font-family: verdana,arial; font-size:14px; background-color: purple;}
</style>
</head>
<body>
...
<p>Text imprimat pe fond purpuriu.</p>
...
Rezultat:
Exemplu2:
<head><title>Exemplu putin mai complicat</title>
<style type="text/css">
h1 { font-size: x-large; color: red }
h2 { font-size: large; color: blue }
body {background-color: black;
color: white;
}
p{
color: green;
font-family: tahoma,arial,verdana;
font-size: 12px;
}
</style>
</head>
<body>
Textul de aici e alb pe fond negru
<p>Text verde imprimat pe fond negru.</p>
Si textul de aici e alb pe fond negru
<p>Alt text verde imprimat pe fond negru.</p>
</body>
Observaţie: Dacă zona de definire a stilurilor ataşate diferitelor marcaje este salvată separat, într-un fişier
denumit de exmplu stil.css, pentru a impune într-o pagină web a saitului aceleaşi modificări, se va include în
secţiunea <head> a acesteia un marcaj <link> în care se va specifica fişierul care conţine definiţiile de stiluri, ca
în exemplul de mai jos:
Exemplu 3:
<head><title>Exemplu fisier extern</title>
<link rel="stylesheet" type="text/css" href="stil.css" />
</head>
<body>
.....
</body>
Avantajul acestei soluţii constă din faptul că aspectul paginilor sitului în care este inclus fişierul stil.css poate
uşor modificat, prin simpla editare a regulilor conţinute de acesta.
CSS Background
Pentru a formata background-ul elementelor HTML cu ajutorul CSS vom folosi urmatoarele atribute
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
Background solid
Background imagine
Ca si valoare standard browserul va repeta imaginea pe latimea si lungimea pagini pentru a crea background-ul
body
{
background-image:url("o_imagine.gif");
background-repeat:repeat-x;
}
Aceasta functie speciala a CSS-ului se poate folosi la crearea background-urilor cu efect gradient. Pentru a repeta
inaginea pe verticala in loc de "repeat-x" vom folosi "repeat-y".
Daca nu vrei ca imaginea sa se repete trebuie sa specifici acest lucru
body
{
background-image:url("o_imagine.gif");
background-repeat:no-repeat;
}
Odata ce am specificat ca nu vrem ca imaginea sa se repede si in cazul in care nu specificam altceva browserul va adauga:
background-position: top left; ca valoare standard.
CSS - background-attachment
CSS background-attachment se foloseste pentru a pune ca background o imagine care se misca impreuna cu continutul
sau pur si simplu este fixa. Sintaxa CSS ar fi urmatoarea:
body
{
background-image:url("o_imagine.png");
background-repeat:no-repeat;
background-attachment:fixed;
}
body {
background-color:#ffffff;
background-image:url("o_imagine.gif");
background-repeat:no-repeat;
background-position:top right;
}
Tot ce am scris mai sus se poate rezuma la expresia CSS de mai jos
Cand se foloseste varianta scurta a acestor atribute ordinea lor va fi mereu urmatoarea:
-background-color
-background-image
-background-repeat
-background-attachment
-background-position
Nu conteaza daca unul sau mai multe valori lipsesc atata timp cat se pastreaza aceasta ordine.
Unităţi de măsură
Unele dintre proprietăţile elementelor conţinute într-o pagină web necesită scrierea unei dimensiuni. Cu excepţia valorilor
nule, după dimensiune trebuie scrisă unitatea de măsură.
U.M. Explicaţie
% procent. Ex: p.big {line-height: 200%}
in inch. Ex: h2 {margin: 0.5in;}
cm centimetri. Ex. h2 {margin: 0.5cm;}
mm milimetri
em 1 em este egal cu mărimea normală a fontului. Ex. h1 {font-size: 2em;} (identic cu font-size:200%)
pt point 1pt=1/72in
pc pica 1pc=12px
px pixeli. Exemplu: p {font-size: 12px}
Exemplu:
p {margin: 0 20px 0 20px}
Fonturi
În CSS fontul este definit prin denumire, dar, deoarece pe calculatorul pe care se afişează pagina web fontul indicat poate
lipsi, după denumirea fontului (fonturilor) se precizează familia din care acesta face parte. Proprietatea utilizată este
fontfamily.
Fontul Familia
"Times New Roman", Gramond, Georgia serif
Exemplu:
h1 {font-family: verdana,helvetica, sans-serif;}
h2 {font-family: "Times New Roman", serif;}
Exemplu:
h2 {
font-family: "Times New Roman", serif;
font-style: italic;
}
Folosind proprietatea font-variant se poate impune scrierea cu majuscule mici (font-variant: small-caps) sau normal (font-
variant: normal). Scrierea bold se poate impune folosind font-weight: Proprietatea poate avea valorile bold sau normal.
Dimensiunea caracterelor poate fi impusă folosind proprietatea font-size. De obicei mărimea este definită în pixeli (px) sau
procentual (% sau em). Este recomandată varianta definirii procentuale deoarece în acest caz rămâne posibilă mărirea
fontului folosind opţiunile programului de navigare. Varianta definirii mărimii caracterelor în unităţi absolute (px, in, cm,
etc.) se aplică în cazurile în care modificarea mărimii fontului în momentul afişării ar afecta grav aspectul acesteia. De
exemplu textul plasat deasupra unui buton desenat nu trebuie să poată fi mărit.
Exemplu:
h1 {font-family: arial, verdana, sans-serif;
font-size: 150%; font-weight: bold}
h2 {font-family: "Times New Roman", serif;
font-size: 120%;}
h1 { font-size: 30px; }
h2 { font-size: 20px; }
p { font-size: 12px; }
Formatarea textului
Formatarea textului se realizează cu un set de proprietăţi care permit diverse tipuri de alinieri, indentări şi spaţieri.
Indentarea textului se realizează folosind proprietatea text-indent. Efectul indentării este decalarea poziţiei de început a
primei linii a fiecărui paragraf cu o mărime impusă.
Exemplu:
p{
text-indent: 50px;
}
Alinierea textului se realizează folosind proprietatea text-align. Valorile posibile ale proprietăţii sunt: left, right, center sau
justify.
Exemplu:
th {
text-align: right;
}
td {
text-align: center;
}
p{
text-align: justify;
}
Sublinierea sau bararea textului se realizează folosind proprietatea text-decoration. având valorile posibile none, underline
(subliniat), overline (barat), line-through (tăiat).
Exemplu:
h1 {
text-decoration: underline;
}
h2 {
text-decoration: overline;
}
h3 {
text-decoration: line-through;
}
Exemplu:
h1 {
letter-spacing: 6px;
}
p{
letter-spacing: 3px;
}
Controlul scrierii cu majuscule se realizează folosind proprietatea text-transform. Valorile posibile sunt:
- capitalize - prima literă va fi majusculă
- uppercase - toate literele vor fi majuscule,
- lowercase - toate literele vor fi mici,
- normal - caracterele vor fi scrise normal.
p { text-transform: uppercase; }
p { text-transform: lowercase; }
p { text-transform: capitalize; }
Observatie:
Vom considera exemplul de mai sus un element. Trebuie mentionat ca acest element are o latime totala de 270px
(200+15x2+5x2+15x2=270px).
Concluzie:
latimea continutului + left padding + right padding + left border + right border + left margin + right margin = Latimea
totala
si
inaltimea continutului + top padding + bottom padding + top border + bottom border + top margin + bottom margin =
Inaltimea totala
Aceste doua formule trebuiesc luate in considerare atunci cand stabilim inaltimea si latimea continutului.
Nota:
Trebuie mentionat aici ca Internet Explorer, include padding-ul si border-ul in latime (width) in cazul in care acesta este
specificata. Aceasta eroare se corecteaza introducand un DOCTYPE la inceputul documentului.
div {
border-style:solid;
border-width:2px;
}
div {
border-style:solid;
border-color:red;
}
Observatie:
Se pot deasemenea stabilii proprietati individuale pentru fiecare dintre laturile chenarului obtinut.
div {
border-top-style:dotted;
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:solid;
}
Forma scurta de a scrie toate aceste valori intr-o singura expresie este
div {
border-style:dotted solid;
}
Folosind forma scurta de a scrie CSS putem stabill aceste valori mult mai simplu economisind timp. Iata cateva exemple:
- div { border-style:dotted solid double dashed; }
Bordura de sus este "dotted", cea din stanga "solid", cea din dreapta "double" iar cea de jos este "dashed".
- div { border-style:dotted solid double; }
Bordura de sus este punctata, cea din dreapta si din stanga sunt solide iar bordura de jos este dubla.
- div { border-style:dotted solid; }
Bordurile de sus si de jos sunt punctate iar cele din dreapta si din stanga sunt solide.
- div { border-style:dotted; }
Desi deasupra s-a luat un exemplu de baza folosind border-style, aceleasi reguli se aplica la toate celelalte atribute
mentionate.
Observatie:
O alta metoda de a coda in CSS toate proprietatile bordurii intr-o singura expresie este:
CSS - Margin
Atributul margin stabileste o distanta in afara bordurii stabilite anterior. Marginea definita nu va avea nici o culoare, cu alte
cuvinte va fi transparenta.
Pentru a defini aceasta margine vom stabili valoarea fiecarei margini in parte cea de sus (margin-top) marginea din dreapta
si din stanga ( margin-right si respectiv margin-left), si cea de jos (margin-bottom). Retineti aceasta ordine intrucat va fi
utila atunci cand stabiliti margin folosind expresia scurta:
margin: 30px 20px 30px 50px; (sus, dreapta, stanga, jos)
margin: 30px 20px 50px; (sus, dreapta si stanga, jos)
margin: 30px 20px (sus si jos, dreapta si stanga)
margin: 30px (sus jos dreapta si stanga - cu alte cuvinte o spatiere de 30 de pixeli de jur imprejurul bordurii)
CSS - Padding
Padding se refera la regiunea dintre continut si bordura (border). Vom stabili aceasta regiune in acelasi fel ca si la atributul
margin, folosind:
- padding-top:10px;
- padding-bottom:10px;
- padding-right:20px;
- padding-left:20px;
Expresia CSS sub forma scurta se formeaza ca si la margin
CSS - Liste
In HTML avem doua tipuri de liste:
- ordonate - numere, numere romane sau litere
- neordonate - cerculete, buline, patratele etc.
Atributul list din CSS permite modificarea tipului de lista sau folosirea unei imagini ca marcator.
Un exemplu practic de a folosi atributul list este:
ul {list-style-type:disc;}
ol {list-style-type:upper-roman;}
Pentru a folosi o imagine ca marcator vom folosi:
ul { list-style-image:url("image.png"); }
Mentiune:
NU toate browser-ele vor afisa imaginea in aceasi pozitie. De exemplu Internet Explorer si Opera va afisa imaginea ceva
mai sus decat Firefox si Google Chrome.
Pentru a plasa imaginea in pozitia dorita si sa ramana acolo in orice navigator vom:
- folosi imaginea ca background fara sa o repetam.
- vom stabili distanta fata de marginea din stanga si cea de sus.
- vom stabili ca lista sa nu aibe nici un marcator si vom egala margin si padding cu 0 pentru a fi afisat la fel in toate
browser-ele.
ul {
list-style-type:none;
padding:0px;
margin:0px;
}
li {
background-image:url(image.png);
background-repeat:no-repeat;
background-position:0px 5px;
padding-left:15px;
}
CSS - Pozitionare
Pozitionarea elementelor este de patru tipuri.
- statica
- fixa
- relativa
- absoluta
.pozitie_fixa {
position:fixed;
top:25px;
right:10px;
}
.pozitionare_relativa{
position:relative;
left:-15px;
top:-30px;
}
Folosind aceasta pozitionarea relativa pot fi suprapuse mai multe elemente.
<style type="text/css">
.element_suprapus {
position:relative;
top:-20px;
}
</style>
<h2>Acest element are o pozitionare statica</h2>
<h2 class="element_suprapus">Titlul va fi urcat mai sus fata de pozitia
initiala</h2>
<p><b>Note:</b> Trebuie mentionat ca spatiul corespunzator
elementului, va fi pastarat</p>
De multe ori pozitionarea relativa sau div-urile pozitionate relativ sunt folosite ca si container pentru alte divuri sau
elemente pozitionate absolut.
p
{
position:absolute;
left:200px;
top:200px;
}
<html>
<head>
<style type="text/css">
img
{
position:absolute;
left:0px;
top:0px;
z-index:-1;
}
</style>
</head>
& <body>
<h1>Suprapunerea mai multor elemente in CSS</h1>
<img src="imagine.jpg" width="100" height="100" />
<p>Vom folosi atributul z-index pentru a specifica ordinea elementelor.
z-index poate avea atat valori pozitive cat si negative.</p>
</body>
</html>
Datorita faptului ca "z-index"-ul imagini are valoarea -1, imaginea va fi pozitionata in spatele textului. De aici regula ca un
element cu "z-index" mai mare va fi pozitionat in fata unui element cu "z-index" mai mic.
Exemplul 1 = border-width=
<html>
<head>
<style type="text/css">
p.one
{
border-style:solid;
border-width:5px;
}
p.two
{
border-style:solid;
border-width:medium;
}
p.three
{
border-style:solid;
border-width:1px;
}
</style>
</head>
<body>
<p class="one">Scrieti un text.</p>
<p class="two">Scrieti un alt text.</p>
<p class="three">Hai! Mai scrieti un text.</p>
<p><b>Nota:</b> Proprietatea "border-width" nu se poate folosi fara sa fi selectat mai intai stilul
bordurii cu "border-style".</p>
</body>
</html>
Exemplul 2= border-color=
<html>
<head>
<style type="text/css">
p.one
{
border-style:solid;
border-color:red;
}
p.two
{
border-style:solid;
border-color:#98bf21;
}
</style>
</head>
<body>
<p class="one">O bordura rosie, groasa.</p>
<p class="two">O bordura verde, groasa</p>
<p><b>Note:</b> Si aceasta proprietate se utilizeaza similar cu cea de la exemplul 1.</p>
</body>
</html>
Exemplul 4 =outline=
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
p
{
border:1px solid red;
outline:green dotted thick;
}
</style>
</head>
<body>
<p><b>Nota:</b> IE8 suporta proprietatile outline numai daca este specificat un !DOCTYPE.</p>
</body>
</html>
Exemplul 5 =margin=
<html>
<head>
<style type="text/css">
p
{
background-color:yellow;
}
p.margin
{
margin-top:100px;
margin-bottom:100px;
margin-right:50px;
margin-left:50px;
}
</style>
</head>
<body>
<p>In acest paragraf marginile nu sunt specificate.</p>
<p class="margin">Dar in acest paragraf s-au specificat marginile.</p>
</body>
</html>
Exemplul 6 =padding=
<html>
<head>
<style type="text/css">
p
{
background-color:yellow;
}
p.padding
{
padding-top:25px;
padding-bottom:25px;
padding-right:50px;
padding-left:50px;
}
</style>
</head>
<body>
<p>La acest paragraf nu s-a specificat padding-ul.</p>
<p class="padding">Aici s-a utilizat padding.</p>
</body>
</html>
Exemplul 7 =Liste =
<html>
<head>
<style type="text/css">
ul.a {list-style-type:circle;}
ul.b {list-style-type:square;}
ol.c {list-style-type:upper-roman;}
ol.d {list-style-type:lower-alpha;}
</style>
</head>
<body>
<p>Exemplu de liste neordonatea:</p>
<ul class="a">
<li>Cafea</li>
<li>Ceai</li>
<li>Coca Cola</li>
</ul>
<ul class="b">
<li>Cafea</li>
<li>Ceai</li>
<li>Coca Cola</li>
</ul>
<p>Exemplu de liste ordonate:</p>
<ol class="c">
<li>Cafea</li>
<li>Ceai</li>
<li>Coca Cola</li>
</ol>
<ol class="d">
<li>Cafea</li>
<li>Ceai</li>
<li>Coca Cola</li>
</ol>
</body>
</html>
ul{
list-style-type:none;
margin:0;
padding:0;
}
Codul CSS de mai sus poate fi folosit atat pentru meniuri verticale cat si pentru bara orizontala.
a{
display:block;
width:100px;
}
***Nota
Desi nu este absolut obligatoriu sa stabiliti latimea blocului de elemente, se recomanda insa, sa nu omiteti acest detaliu. In
browsere mai vechi bara de linkuri poate fi distorsionata.
In principiu codul de mai sus este de ajuns pentru a crea un meniu vertical. In continuare aveti insa un meniu terminat si
finisat decent.
Model
Meniu Vertical
<html>
<head>
<style type="text/css">
ul {
list-style-type:none;
margin:0;
padding:0;
}
a:link,a:visited {
display:block;
font-weight:bold;
font-size:17px;
color:#fff;
background-color:#d2691e;
width:200px;
padding:8px;
text-decoration:none;
}
a:hover,a:active {
background-color:#daa520;
}
</style>
</head>
<body>
<ul>
<li><a href="#">Acasa</a></li>
<li><a href="#">Articole</a></li>
<li><a href="#">RSS Feedt</a></li>
<li><a href="#">Contact</a></li>
</ul>
</body>
</html>
Folosind inline
Pentru a crea o bara de meniuri orizontale cu atributul inline nu trebuie decat sa adaugam urmatoarea linie de cod CSS.
l i { display:inline; }
Ca si afisare standard elementele unei liste sunt afisate in bloc. Linia de cod CSS de mai sus nu face decat sa elimine enter-
urile inainte si dupa acestea afisand link-urile pe aceasi linie.
Folosind float
Vom folosi atributul float pentru a afisa elementele listei unul langa celalalt. Vom folosi de asemenea atributul
display:block; pentru a afisa linkul ca si un buton si vom stabili latimea acestuia.
Iata codul CSS aferent.
li {
float:left;
}
a{
display:block;
width:60px;
}
Odata ce am reprezentat elementul in bloc este obligatoriu sa stabilim latimea acestuia. In caz contrar acesta va ocupa toata
latimea disponibila.
Codurile afisate anterior sunt suficiente pentru a crea o bara de meniuri orizontala folosind CSS.
Modele de meniu orizontal
A. Chenare si margini
Fiecare element este incadrat intr-o caseta care este compusa din urmatoarele elemente:
Originea elementului este considerat coltul din dreapta sus fata de care se vor raporta toate
dimensiunile prezentate in continuare.
width si height
Latimea si inaltimea unui element sunt stabilite in HTML prin atributele width si height. Aceste
atribute pot fi adaugate sau suprascrise prin comenzi CSS.
<html>
<head>
<title>Exemplul 1</title>
<style type="text/css">
<!--
img {width: 50px; height: 100px;}
-->
</style>
</head>
<body>
<img src="margini.gif">
</body>
</html>
padding si margin
padding stabileste distanta dintre obiect si chenar simultan pentru toate laturile. Distantele pot fi
stabilite si individual folosind padding-top, padding-bottom, padding-left saupadding-right.
margin stabileste distanta dintre chenar si celelalte obiecte din pagina simultan pentru toate
laturile. Distantele pot fi stabilite si individual folosind margin-top, margin-bottom,margin-
left sau margin-right.
Valorile pentru padding si margin pot fi exprimate in: px (pixeli), in (inci), pt (puncte) sau cm
(centimetri).
Exemplu: folosind comenzi CSS imaginea este pozitionata la 100px fata de latura stanga si 25px
fata de latura de sus
<html>
<head>
<title>Exemplul 2</title>
<style type="text/css">
<!--
img {margin-left: 100px; margin-top: 25px;}
-->
</style>
</head>
<body>
<img src="margini.gif">
</body>
</html>
border
Netscape si Internet Explorer afiseaza diferit chenarele. Comanda CSS pentru definirea
chenarului este border avand proprietatile asociate width, style si color. Pentru a fi siguri ca
aceste proprietati functioneaza atat in Internet Explorer cat si in Netscape trebuie sa declaram
pentru border cel putin width si style.
border-color stabileste culoarea chenarului si poate fi exprimata prin valoare hexazecimala sau
in cuvinte.
<html>
<head>
<title>Exemplul 3</title>
<style type="text/css">
<!--
.clasa1 {border-width: 2px; border-style: dotted; border-color: red;}
.clasa2 {border-width: 3px; border-style: dashed; border-color: blue;}
.clasa3 {border-width: 2px; border-style: solid; border-color: green;}
.clasa4 {border-width: 3px; border-style: double; border-color: black;}
.clasa5 {border-width: 2px; border-style: groove; border-color: silver;}
.clasa6 {border-width: 3px; border-style: ridge; border-color: lime;}
.clasa7 {border-width: 2px; border-style: inset; border-color: yellow;}
.clasa8 {border-width: 3px; border-style: outset; border-color: aqua;}
.clasa9 {border-width: 2px; border-style: hidden; border-color: olive;}
-->
</style>
</head>
<body>
<div class="clasa1">border-width: 2px; border-style: dotted; border-color: red;</div><br>
<div class="clasa2">border-width: 3px; border-style: dashed; border-color: blue;</div><br>
<div class="clasa3">border-width: 2px; border-style: solid; border-color: green;</div><br>
<div class="clasa4">border-width: 3px; border-style: double; border-color: black;</div><br>
<div class="clasa5">border-width: 2px; border-style: groove; border-color: silver;</div><br>
<div class="clasa6">border-width: 3px; border-style: ridge; border-color: lime;</div><br>
<div class="clasa7">border-width: 2px; border-style: inset; border-color: yellow;</div><br>
<div class="clasa8">border-width: 3px; border-style: outset; border-color: aqua;</div><br>
<div class="clasa9">border-width: 2px; border-style: hidden; border-color: olive;</div>
</body>
</html>
B. Pozitionare
Pozitionarea permite asezarea unui obiect intr-un anume loc folosind coordonatele. Totodata
obiectele pot fi pozitionate pe straturi diferite, unul deasupra celuilalt.
Pozitionare absoluta plaseaza obiectul in pagina exact in locatia data de left si top. Astfel poate
fi creat un element liber fata de celelalte din pagina. Obiectul poate fi orice, de exemplu text sau
imagine.
<html>
<head>
<title>Exemplul 1</title>
</head>
<body>
<h4 style="position: absolute; left: 50px; top: 50px">Text 1</h4>
<h4 style="position: absolute; left: 100px; top: 200px">Text 2</h4>
</body>
</html>
Pozitionare relativa este pozitia normala pe care o ocupa un element, dupa elementele
anterioare si inaintea celor urmatoare. Poate fi deplasat fata de aceasta pozitie folosind
proprietatile left si top.
Exemplu: am folosit doua obiecte, unul pozitionat absolut, celalalt relativ
<html>
<head>
<title>Exemplul 2</title>
<style type="text/css">
<!--
.absolut {position: absolute; left: 200px; top: 150px;}
.relativ {position: relative; left: 50px; top: 50px;}
-->
</style>
</head>
<body>
<div class="absolut">Pozitionare absoluta, independent de celelate obiecte din pagina</div>
Text
<div class="relativ">Pozitionare relativa, dupa "Text"</div>
</body>
</html>
Pozitionarea tridimensionala
Elementele sunt pozitionate pe ecran pe o suprafata bidimensionala dar pot fi asezate si unul
deasupra celuilalt, intr-o stiva utilizand un indicativ (index-z) incepand cu 0, urmatorul 1 si tot
asa in continuare. Elementul cu indexul cel mai mare este asezat deasupra.
<html>
<head>
<title>Exemplul 3</title>
<style type="text/css">
<!--
.element1 {position: absolute; left: 30px; top: 30px; z-index: 3}
.element2 {position: absolute; left: 50px; top: 50px; z-index: 2}
.element3 {position: absolute; left: 70px; top: 70px; z-index: 1}
-->
</style>
</head>
<body>
<div class="element1"><img src="poza.jpg"></div>
<div class="element2"><img src="poza.jpg"></div>
<div class="element3"><img src="poza.jpg"></div>
</body>
</html>
Exemplu:
<style type="text/css"><!--
h2 {
/* pt. IE8+ */
filter:progid:DXImageTransform.Microsoft.Shadow(color=#a0a1fe, direction=135, strength=5);
text-shadow: 2px 3px 3px #a0a1fe;
}
--></style>
<h2>Text cu text-shadow</h2>
Se pot adauga mai multe umbre la acelasi text, prin adaugarea mai multor liste de umbre in proprietatea text-
shadow, separate prin virgula.
Urmatorul cod amesteca o culoare verde cu una albastra ca sa creeze un efect de umbra cu aceste culori:
<style type="text/css"><!--
h2 {
/* pt. IE8+ */
filter:progid:DXImageTransform.Microsoft.Shadow(color=#a0a0fe, direction=135, strength=5);
text-shadow: -1px -1px 1px rgba(110,235,155,0.2), 2px 3px rgba(0,0,181,0.2);
}
--></style>
CSS3 word-wrap
Cu word-wrap puteti determina browser-ul sa rupa cuvintele lungi, cand acestea depasesc lungimea elementului,
trecand pe un rand nou.
Sintaxa:
word-wrap: valoare;
"valoare" poate fi:
- normal - Nu rupe cuvintele intregi (valoarea prestabilita).
- break-word - Permite ruperea cuvintelor intregi. Cuvintele sunt rupte la nivel de caracter, nu in silabe.
Exemplu:
<style type="text/css"><!--
#id1 {
width:100px;
border:1px solid blue;
word-wrap:break-word;
}
--></style>
<div id="id1">Curs CSS gratuit - word-wrap un_cuvant_mai_lung.</div>
CSS3 text-overflow
Cu proprietatea text-overflow puteti determina ce sa se intample cu textul, cand acesta depaseste lungimea
elementului.
text-overflow este suportat in majoritatea navigatoarelor web, in afara de Firefox.
Sintaxa:
text-overflow: valoare;
"valoare" poate fi:
- clip - taie textul (valoarea prestabilita).
- ellipsis - afiseaza trei-puncte ("…") in locul textului taiat.
CSS3 opacity
Proprietatea opacity seteaza nivelul de opacitate al unui element HTML, opacity permite modificarea transparentei
elementului.
IE8 si versiuni anterioare folosesc o varianta alternativa, proprietatea filter.
- Sintaxa:
filter: alpha(opacity=X); /* pt. IE */
opacity: X;
- X - reprezinta o valoare intre 0 (complet transparent) si 1.0 (fara transparenta).
1) Exemplu, un <div> cu o transparenta CSS de 40%:
<style type="text/css"><!--
#dv {
background-color:blue;
width:200px;
height:100px;
filter:alpha(opacity=40); /* pt. IE */
opacity:0.4;
}
--></style>
#idv:hover {
transform: translate(20px, 15px);
-ms-transform: translate(20px, 15px); /* IE 9 */
-webkit-transform: translate(20px, 15px); /* Safari si Chrome */
-o-transform: translate(20px, 15px); /* Opera */
-moz-transform: translate(20px, 15px); /* Firefox */
}
</style>
CSS rotate()
Metoda rotate() roteste elementul HTML, in sensul orelor de ceas daca valoarea e pozitiva, in sens invers orelor de
ceas daca valoarea e negativa.
- Sintaxa:
transform: rotate(grade);
Exemplu. Roteste element cu 60 grade in sensul orelor de ceas.
<style type="text/css">
#idv2 {
width:90px;
height:90px;
background:#b0b1fe;
font-size:17px;
}
#idv2:hover {
transform: rotate(60deg);
-ms-transform: rotate(60deg); /* IE 9 */
-webkit-transform: rotate(60deg); /* Safari si Chrome */
-o-transform: rotate(60deg); /* Opera */
-moz-transform: rotate(60deg); /* Firefox */
}
</style>
Metoda scale()
Metoda scale() mareste sau micsoreaza marimea elementului HTML (inclusiv continutul din el), in functie de
parametri pentru Lungime (axa-X) si Inaltime (axa-Y).
- Sintaxa:
transform: scale(Lungime, Inaltime);
- Valorile pentru Lungime si Inaltime sunt in procente. De exemplu, 1.5 inseamna 150% din marimea originala.
Exemplu. Transforma lungimea sa fie de 2 ori marimea originala, si inaltimea 1.5 ori inaltimea originala.
<style type="text/css">
#idv3 {
width:90px;
height:90px;
background:#b0b1fe;
font-size:17px;
}
#idv3:hover {
transform: scale(2, 1.5);
-ms-transform: scale(2, 1.5); /* IE 9 */
-webkit-transform: scale(2, 1.5); /* Safari si Chrome */
-o-transform: scale(2, 1.5); /* Opera */
-moz-transform: scale(2, 1.5); /* Firefox */
}
</style>
CSS skew()
Metoda skew() distorsioneaza elementul HTML pe orizontala (axa-X) si verticala (axa-Y), incluzand si continutul
din el.
- Sintaxa:
transform: skew(Xdeg, Ydeg);
Exemplu. Distorsioneaza elementul 20 grade pe lungime (axa-X) si 25 grade pe verticala (axa-Y).
<style type="text/css">
#idv4 {
width:160px;
height:90px;
background:#abcdfe;
font-size:18px;
transform: skew(20deg, 25deg);
-ms-transform: skew(20deg, 25deg); /* IE 9 */
-webkit-transform: skew(20deg, 25deg); /* Safari si Chrome */
-o-transform: skew(20deg, 25deg); /* Opera */
-moz-transform: skew(20deg, 25deg); /* Firefox */
}
</style>
<div id="idv4">www.ace.ucv.ro</div>
Cele 4 metode de transformare pot fi utilizate si intr-o singura definitie transform, separate prin spatiu.
- Sintaxa:
transform: translate(X, Y) rotate(grade) scale(Lungime, Inaltime) skew(Xdeg, Ydeg);
- Puteti adauga doar acele metode pe care doriti sa le folositi in transformare.
Exemplu: muta elementul cu 50 pixeli de la stanga si 25 pixeli din partea de sus, il roteste cu 20 grade in sens invers
orelor de ceas, transforma lungimea de 2 ori cea originala si inaltimea 1.5 ori, distorsioneaza elementul cu 15 grade
pe orizontala si 20 grade pe verticala.
<style type="text/css">
#idv5 {
width:90px;
height:90px;
background:#00da01;
font-size:17px;
transform: translate(50px, 25px) rotate(-20deg) scale(2, 1.5) skew(15deg, 20deg);
-ms-transform: translate(50px, 25px) rotate(-20deg) scale(2, 1.5) skew(15deg, 20deg); /* IE 9 */
-webkit-transform: translate(50px, 25px) rotate(-20deg) scale(2, 1.5) skew(15deg, 20deg); /* Safari si Chrome */
-o-transform: translate(50px, 25px) rotate(-20deg) scale(2, 1.5) skew(15deg, 20deg); /* Opera */
-moz-transform: translate(50px, 25px) rotate(-20deg) scale(2, 1.5) skew(15deg, 20deg); /* Firefox */
}
</style>
CSS3 transition
CSS3 transition poate fi utilizat pentru a anima proprietatile CSS, adaugand un efect de animatie cand se modifica
proprietatile CSS ale unui element HTML, schimband gradual de la un stil la altut.
CSS3 transition are 4 componente:
• transition-property - Specifica numele proprietatii (sau proprietatilor) la care transition trebuie aplicat
(precum: width, color, font-size, etc.).
CSS3 transition poate fi utilizat cu proprietatile prezentate aici: Proprietati CSS ce pot fi animate
• transition-duration - Specifica durata tranzitiei (animatiei), in sesunde (s), milisecunde (ms), (implicit 0).
• transition-timing-function - Defineste tipul vitezei efectului in timpul transformarii:
ease (implicit), linear, ease-in, ease-out, ease-in-out
• transition-delay - Defineste timpul de asteptare pana cand incepe efectul "transition" (implicit 0)
Exemplu. Cand mouse-ul e deasupra unui anumit Div, se schimba gradual lungimea.
<style type="text/css">
#iddv {
width:80px;
height:80px;
background:#b8b9fe;
font-size:17px;
transition-property: width;
transition-duration: 1.4s;
/* Firefox 4 */
-moz-transition-property: width;
-moz-transition-duration: 1.4s;
/* Safari si Chrome */
-webkit-transition-property: width;
-webkit-transition-duration: 1.4s;
/* Opera */
-o-transition-property: background-color, color;
-o-transition-duration: 1.4s;
}
#iddv:hover {
width:200px;
}
</style>
.clse:hover {
font-size: 16px;
}
</style>
<ul>
<li class="clse"><a href="http://www.marplo.net/curs_css/" title="Curs CSS gratuit">Curs CSS gratuit</a></li>
<li class="clse"><a href="http://www.marplo.net/html/" title="Curs HTML">Curs HTML</a></li>
<li class="clse"><a href="http://www.coursesweb.net/" title="Cursuri Programare Web">Cursuri Programare
Web</a></li>
</ul>
Adaugarea JavaScript intr -o pagina HTML
Putem, de asemenea, sa introducem instructiunile JavaScript intr-un alt fisier, extern, care va
avea extensia ".js", pentru editarea acestui fisier este nevoie la fel de un editor simplu de texte.
Avantajul fiind ca putem folosi acelasi cod in mai multe pagini HTML si in cazul necesitatii
unei modificari in codul JavaScript, modificam doar datele dintr-un singur fisier (cel cu
extensia ".js").
In cazul in care codul JavaScript se afla intr-un fisier extern, eticheta <script> din pagina
HTML va trebui sa contina atributul "src" a carui valoare e locatia fisierului in care se afla
codul JavaScript.
- In fisierul extern cu extensia "js" nu trebuie sa scriem eticheta "<script>", scriem direct
instructiunile scriptului.
Iata un exemplu de script JavaScript scris in interiorul unei pagini web (HTML):
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>Continut HTML ..</h3>
<script>
document.write('Textul afisat cu document.write() din JS.');
</script>
</body>
</html>
Daca dorim sa incarcam scriptul dintr-un fisier extern (de exemplu "cod.js"), codul nostru in
documentul HTML va arata astfel:
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>Continut HTML ..</h3>
<script src='cod.js'></script>
</body>
</html>
Comentariile in interiorul codului sunt necesare cand dorim sa specificam rolul anumitor
functii si variabile, pentru o mai usoara intelegere ulterioara a scriptului.
Pentru a adauga un comentariu, pe o singura linie, in interiorul codului, incepem scrierea
acestuia cu succesiunea //.
Daca dorim sa scriem comentarii pe mai multe randuri, se foloseste /* la inceputul
comentariului si */ la sfarsitul acestuia.
<script>
// Comentariu pe o singura linie
document.write('Textul afisat cu document.write() din JS.');
/*
Comentarii pe mai multe linii
Alt rand,
Alte comentarii
*/
document.write('Textul afisat cu document.write() din JS.');
</script>
Conventii de sintaxa
In orice limbaj, scrierea are conventii si reguli de sintaxa. Chiar si scrierea în limba româna
are regulile ei de sintaxa: orice propozitie incepe cu litera mare, se termina cu un semn de
punctuatie, etc.! La fel si limbajele de programare au regulile si sintaxa lor.
In continuare vor fi prezentate regulile de sintaxa din limbajul JavaScript.
1. Case-sensitive - se face diferenta intre literele mari si mici, astfel cuvinte precum
"exemple, Exemple" vor fi tratate diferit.
2. Punct si virgula (;) - Declaratiile /liniile de cod trebuie sa se termine cu un caracter
"punct si virgula" (;).
Exemplu:
var3 ='JavaScript';
3. Spatiile libere - JavaScript ignora spatiile libere, tab-urile si liniile libere care apar în
instructiuni, acestea sunt utile pentru a face codul mai bine structurat si usor de citit.
Recunoaste doar spatiile care apar în string-uri (sirurile de caractere).
Exemplu:
4. Ghilimelele - Ghilimelele simple ('') si duble ("") sunt folosite pentru a delimita sirurile
de caractere (string). (Exemplu: "Invat JavaScript" sau 'String JavaScript' ).
5. Caractere speciale - cand scriem scripturi, apare necesitatea de a folosi in cod sau in
datele de iesire, un caracter special, sau o linie noua. Pentru aceasta folosim caracterul
backslash "\" in fata unuia din codurile Escape , astfel :
\b - backspace
\f - indica o pagina noua
\n - linie noua
\r - indica un CR (Carriage Return)
\t - indica spatiu de tasta TAB
\\ - caracter backslash
\' - indica un apostrof (ghilimele simple)
\" - indica ghilimele duble
De exemplu, daca dorim sa afisam un text, folosind document.write(), iar acel text
trebuie sa contina ghilimele si caracter backslash "\", si anume textul (Curs "JavaScript" \
Java.net), pentru a nu "deruta" scriptul in interpretarea codului, deoarece ghilimelele si backslash
fac parte din sintaxa, adaugam \ in fata acestor caractere din interiorul sirului. Comanda de
afisare a sirului va fi astfel:
- primul caracter trebuie sa fie o litera, un caracter de subliniere (_) sau semnul $.
- primul caracter nu poate fi un numar.
- numele nu trebuie sa contina spatii libere.
- nu se folosesc cuvinte rezervate, care fac parte din limbajul JavaScript (cum sunt
"array", "status", "alert", "script"), deoarece interpretorul programului nu va face
diferenta intre aceste nume si comenzile JavaScript cu aceleasi nume.
Structura fișierelor
Cel mai ușor ar fi sa pornim mereu de la aceasta structura, iar practic pentru fiecare proiect nou
sa copiem acest folder inițial si sa il folosim pe post de sablon.
Am putea scrie si codul de Javascript tot interiorul fișierului html, însă aceasta practica este
descurajata în cadrul proiectelor mai mari.
OBS.: charset este atribut de caracter, specifică codarea caracterelor pentru documentul HTML.
Valori ale atributului charset:
-UTF-8 - Character encoding for Unicode
-ISO-8859-1 - Character encoding for the Latin alphabet
Definire Variabile si Constante
Variabilele sunt nume stocate in memorie la care se atribue /memoreaza diferite date.
In JavaScript variabilele se pot defini folosind declaratia: var sau let.
var name ='Value';
//Sau
let name ='Value';
- Unde 'name' este numele variabilei, iar 'Value' este valoarea atribuita.
Variabilele se folosesc specificand numele lor, si rezulta valoarea care este atribuita.
<script>
let tjs = 'Tutorial JavaScript - Variabile';
document.write(tjs);
</script>
<script>
let xn = 1;
if(xn ==1){
let xn =2;
}
document.write(xn); // 1
</script>
2. Exemplu cu "var":
<script>
var xn = 1;
if(xn ==1){
var xn =2;
}
document.write(xn); // 2
</script>
3. Exemplu cu "var":
<script type="text/javascript">
Pentru a lucra cu variabile, primul lucru care trebuie sa il facem este sa le declaram.In
momentul declararii le dam un nume si le putem da si o valoare initiala, care poate varia pe
durata script-ului.
Se foloseste cuvantul cheie var urmat de numele care dorim sa il dam variabilei : var
variabila1, in plus, se poate declara o valoare : var variabila1 = "Acesta este un simple text".
Se foloseste operatorul de alocare "=" pentru a stabili valoarea care dorim sa o ia variabila.
Daca dorim sa ii dam o valoare textuala atunci folosim ghilimele"".
Trebuie mentionat faptul ca putem introduce text atat cu ghilimele duble cat si simple dar
daca incepem cu o forma , trebuie sa terminam de aceeasi forma.
De exemplu , "Aceasta nu este forma corecta ', nu este un lant de text corect in Javascript.
Daca aveti nevoie sa includeti ghilimele in text atunci folositi cealalta forma de deschidere.'acest
text contine ghilimele duble " dar este corect '.
Determinand tipul de date al unei variabile, putem limita valorile pe care le poate lua precum si
operatiile in care poate aparea.
Cu toate acestea, javascript poate realiza conversii automate de tip, astfel incat o variabila poate
lua valori distincte de tipuri de date pe parcursul script-ului.Acest lucru nu este o buna tactica,
dar adesea este folositoare.
string (sir) - Valori de tip text, adaugate intre ghilimele simple sau duble.
Un șir în JavaScript trebuie să fie înconjurat de ghilimele.
let str = "Hello"; let str2 = 'alt sir '; let str3 = `un sir ${str}`;
3. Backticks: `Hello` .
var x = 8;
var y = 7.95;
var x = true;
var y = false;
let x;
var x = null;
Operatori
Unul dintre elementele care permit crearea unor expresii mai complexe sunt operatorii.
In Javascript putem folosi o multime de operatori impartiti in functie de caracterul lor :
Operatori matematici
+ Suma - Diferenta * Multiplicare / Impartire
++ Increment -- Decrement % Modul
Operatori de comparare
== Egal cu != Distinct de < Mai mic ca <= Mai mic sau egal cu
> Mai mare ca >= Mai mare sau egal cu
Operatori de alocare Exemplu(x = 2 , y = 4) Echivalent Rezultat
= x=y x=4
+= x += y x=x+y x=6
-= y -= x y=y-x y=2
*= y *= x y=y*x y=8
/= y /= x y=y/x y=2
%= y %= x y=y%x y=0
Operatorii cu siruri de caractere Exemplu Rezultat
+ "Buna " + "Seara" "Buna Seara" - observa
ca "Buna " are un
spatiu liber la final
Cadre de dialog
In JavaScript trei cadre de dialog sunt predefinite :
1.Fereastra Alert
Cod HTML:
<!doctype html>
<html>
<head>
<title>Title</title>
</head>
<body>
Continut HTML
<script>
alert('Bine ai venit');
</script>
</body>
</html>
Urmatorul exemplu deschide o fereastra cu mesajul: "Bine ai venit".
2.Fereastra Prompt
O linie de cod:
<script type="text/javascript">
var raspuns = prompt("Care este numele tau ? :","anonim")
</script>
Stocheaza in variabila raspuns valoarea introdusa de utilizator.
Ne putem confrunta cu diferite cazuri :
1.Utilizatorul introduce numele lui si apasa butonul OK. In acest caz variabila raspuns stocheaza numele
utilizatorului.
2.Utilizatorul apasa direct pe butonul OK, in acest caz daca exista un sir de text initial(daca este setata o
valoare implicita)
variabila raspuns primeste aceasta valoare , daca nu exista atunci raspuns este "nedefinit" ( undefined ).
3.Se apasa direct pe butonul Cancel, in acest caz raspuns primeste valoarea null.
In orice caz , atat valoarea intoarsa cat si mesajul si valoarea initiala sunt siruri de text ( string ).
Cod HTML exemplu 1:
<!doctype html>
<html>
<head>
<title>Title</title>
</head>
<body>
Continut HTML
<script>
window.prompt('Scrieti numele', 'Nume');
</script>
</body>
</html>
In browser va apare o fereastra ca in imaginea urmatoare:
Textul pe care utilizatorul il adauga in campul din fereastra prompt poate fi preluat intr-o
variabila si folosit apoi in script.
Iata un exemplu in care atribuim deschiderea ferestrei Prompt unei variabile (aici "nume"),
care va prelua sirul adaugat in caseta de text, apoi valoarea acestei variabile o introducem in
mesajul unei ferestre Alert:
Continut HTML
<script>
var nume = window.prompt('Scrieti numele', 'Nume');
alert('Salut '+ nume +'\n Bine ai venit.');
</script>
Dupa ce utilizatorul scrie numele in fereastra Prompt si apasa OK se va deschide o fereastra
Alert care contine in mesaj numele adaugat de utilizator.
- S-a folosit "\n" pentru a adauga o linie noua, dupa "nume", in textul care apare in fereastra
Alert.
3.Fereastra Confirm
Se foloseste pentru ca utilizatorul sa confirme o actiune.Spre deosebire de cadrul
anterior, aici apar doua butoane ( OK si Cancel ). Putem afla ce buton a apasat
utilizatorul si sa actionam depinzand de alegerea lui.
Fereastra de confirmare se creaza cu sintaxa:
window.confirm('intrebare')
In fereastra de confirmare va apare textul "intrebare" si doua butoane "OK" si "Cancel".
Aceasta fereastra este folosita pentru a fi executata o comanda cand este apasat butonul "OK"
(returneaza TRUE) si alta comanda cand este apasat butonul "Cancel" (returneaza FALSE)
- Urmatorul exemplu deschide o fereastra "Confirm" in care apare intrebarea "Rezultatul lui 0+0
este 0?". Daca este apasat butonul "OK" apare o fereastra Alert cu mesajul "Corect", iar daca
este apasat butonul "Cancel" apare o fereastra Alert cu mesajul "Incorect".
Continut HTML
<script>
var intrebare = window.confirm('Rezultatul lui 0+0 este 0?');
if(intrebare) alert('Corect');
else alert('Incorect');
</script>
In browser va apare o fereastra ca in imaginea urmatoare:
In urmatorul cod :
<script>
var raspuns=confirm("Doresti sa schimbi culoarea de background?");
</script>
Variabila raspuns v-a stoca alegerea utilizatorului, daca apasa pe butonul OK atunci variabila o
sa aiba valoarea true daca a ales Cancel atunci variabila o sa aiba valoarea false.
Aplicatii:
Variabile
Funcția are acces complet la variabila exterioară. Se poate modifica valoarea atribuita unei
variabile ca in exemplul de mai jos.
<script>
let userName = 'Ana';
function afiseaza() {
userName ='Dana'; // atribuim alta valoare variabilei
let mesaj = 'Buna, ' + userName;
alert(mesaj);
}
alert( userName );// Ana
afiseaza(); // Buna, Dana scimba variabila dupa ce se apeleaza functia
</script>
<script>
let userName = 'Ana';
function afiseaza() {
userName ='Dana'; // atribuim alta valoare variabilei
let mesaj = 'Buna, ' + userName;
alert(mesaj);
}
alert( userName );// Ana
afiseaza(); // Buna, Dana scimba variabila din fereastra alert dupa ce se apeleaza functia
alert( userName ); // Dana afiseaza noua valoare a variabilei in fereastra alert
</script>
Dacă o variabilă cu același nume este declarată în interiorul funcției, atunci o umbrește pe
cea exterioară. De exemplu, în codul de mai jos funcția folosește numele utilizatorului local
(variabila locala), cel exterior este ignorat:
<script>
let userName = 'Ana';
function afiseaza() {
let userName = "Bob";
let mesaj = 'Buna, ' + userName;
alert(mesaj);
} // functia va utilize propria variabila userName
afiseaza(); // Buna Bob
alert( userName ); //Ana
</script>
La randul ei , functia poate intoarce o valoare. In acest caz, o sa intoarca o valoare boolean true
sau false.Pentru a intoarce o valoare, functia foloseste instructia return.
Prin definirea unei functii, doar indicam ce dorim sa facem cu ea , pentru a o executa trebuie sa o
apelam.
- o functie care incearca sa afle daca numarul introdus de utilizator este intre numerele 1 si 20.
Functia intoarce o valoare booleana indicand daca acesta este cazul. Daca nu pastram rezultatul
intr-un anumit loc, functia nu ne foloseste.
function valideaza( valoare )
{
if( (valoare >= 1) && ( valoare <= 20))
{
return true;
}
else
{
return false;
}
}
Diferenta fata da modul standard e aceasta: o functie definita in mod standard nu mai
poate fi redefinita, dar o functie atribuita unei variabile poate fi redefinita deoarece
reprezinta o valoare a variabilei iar valorile de variabile pot fi schimbate.
Instructiunea return se poate aplica in oricare tip de functie; la cele atribuite ca valori de
variabile, si la 'arrow functions'.
Pe langa faptul ca 'return' returneaza o valoare, acesta opreste executia functiei; codul din
functie adaugat dupa 'return' nu este executat.
Exemplu:
//returneaza suma parametrilor a si b
function sum(a, b){
return a + b;
}
Cod HTML:
<!doctype html>
<html>
<head>
<title>Invata javascript</title>
</head>
<body>
<script type="text/javascript">
function sum(a, b) {
return a + b;
}
let result = sum(5, 2);
alert( result ); // 7
</script>
</body>
</html>
sau:
<!doctype html>
<html>
<head>
<title>Invata javascript</title>
</head>
<body>
<script type="text/javascript">
function sum(a,b) {
return a + b;
}
let suma=sum(3,5);
document.write(`rezultatul este ${suma}`);
</script>
</body>
</html>