Documente Academic
Documente Profesional
Documente Cultură
Așa cum se poate vedea în imaginea 3.1, titlurile diferitelor niveluri sunt afișate folosind diferite
dimensiuni ale fontului și formatarea. De asemenea, atunci când sunt afişate, browserul adaugă câte
o linie goală înainte și după titluri.
Titlurile dintr-un document HTML sunt plasate după o ierarhie a titlurilor. Astfel,<h1> se foloseşte
pentru titlurile principale, <h2> pentru subtitluri și așa mai departe. Această ierarhie trebuie să fie
respectată, astfel încât nu este corect să se folosească, de exemplu, titlul <h4> imediat după
titlul <h1>.
Ierarhia titlurilor se aplică separat pe diferite regiuni ale documentului HTML, desigur, dacă
documentul HTML este format din mai multe regiuni. Astfel că este posibil a avea mai multe
titluri <h1> în cadrul unui document, care s-ar referi la diferite secțiuni ale documentului. Despre
diferitele secțiuni ale documentului HTML vom discuta mai multe într-una din lecțiile următoare.
Elementul <br> nu are conținutul său și este unul dintre elementele cu autoînchidere, din moment
ce nu are un tag de închidere. Un exemplu de utilizare a acestuia este următorul:
<p>Excepteur sint occaecat,<br>cupidatat non proident, sunt in culpa
qui officia deserunt mollit anim id est laborum</p>
Hr
<Hr> este elementul care permite ruperea tematică a textului. Totuşi, acest element este numit după
conceptul horizontal rule, care este o linie ce poate fi folosită pentru a fi separate două secțiuni ale
textului. Majoritatea browserelor tocmai aşa și randează acest element, care, pe lângă efectul său
vizual, are şi un sens semantic care permite separarea tematică a textului.
Dacă vreodată, totuşi, apare necesitatea de salvare a mai multor blancuri, cât și a tranziţiilor în rândul
nou, fără utilizarea elementului <br>, se poate utiliza elementul <pre>. Conținutul complet în
interiorul elementului <pre> reţine toate blancurile şi tranziţiile în rândul nou. Utilizarea acestuia este
ilustrată în exemplul:
<pre>
ex ea commodo consequat.</p>
</pre>
Listele
Limbajul HTML permite crearea listelor. Listele sunt utilizate pentru structurarea conținutului textului.
HTML recunoaște trei tipuri de liste:
Listele Ordered (ordonate)
code
source
1. <ol>
2.
3. <li>nigredo</li>
4.
5. <li>albedo</li>
6.
7. <li>citrinitas</li>
8.
9. <li>rubedo</li>
10.
11. </ol>
12.
Aşa cum s-a menționat deja, o listă ordonată începe cu tagul de deschidere <ol>. Cu alte cuvinte,
tagurile <ol> şi </ol> servesc ca un înveliș pentru elementele pe care le va avea lista. În exemplu,
se poate vedea că unele elemente individuale sunt create folosind tagurile <li> şi </li>.
Listele Unordered (neordonate)
code
source
1. <ul>
2.
3. <li>nigredo</li>
4.
5. <li>albedo</li>
6.
7. <li>citrinitas</li>
8.
9. <li>rubedo</li>
10.
11. </ul>
12.
Din imaginea 3.12 se poate vedea că elementele listei neordonate sunt enumerate
folosind bulleturi (puncte).
Lista imbricată
Lista completă poate apărea ca un element al unei alte liste. Într-o astfel de situație, se poate spune
că o listă se află în altă listă, procedură care se numește imbricarea listei.
code
source
1. <ul>
2.
3. <li>nigredo
4.
5. <ul>
6.
7. <li>primo</li>
8.
9. <li>secundo</li>
10.
11. </ul>
12.
13. </li>
14.
15. <li>albedo</li>
16.
17. <li>citrinitas</li>
18.
19. <li>rubedo</li>
20.
21. </ul>
22.
În exemplu, conținutul primului element al listei, pe lângă textul nigredo, este codul pentru crearea
listei neordonate complete. De aceea, codul prezentat va avea un efect ca în imaginea 3.13.
Analizând imaginea 3.13, lucrurile devin foarte clare. Elementele listei îmbricate devin elementele
celui de al doilea nivel al listei principale. În felul acesta se poate realiza imbricarea elementelor listei
în mai multe niveluri.
code
source
1. <ol>
2.
3. <li>nigredo
4.
5. <ol>
6.
7. <li>primo</li>
8.
9. <li>secundo</li>
10.
11. </ol>
12.
13. </li>
14.
15. <li>albedo</li>
16.
17. <li>citrinitas</li>
18.
19. <li>rubedo</li>
20.
21. </ol>
22.
De asemenea, este permisă imbricarea reciprocă între listele ordonate şi cele neordonate.
Listele de definiții sunt utilizate ceva mai rar decât listele ordonate și cele neordonate. Ele pot fi utile
în situațiile în care este necesar să se asigure o descriere a elementelor. Astfel, listele de definiții sunt
create sub forma unor perechi de elemente și definiții. Un exemplu de liste de definiții este
următorul:
code
source
1. <dl>
2.
3. <dt>nigredo</dt>
4.
6.
7. <dt>albedo</dt>
8.
10.
11. <dt>citrinitas</dt>
12.
14.
15. <dt>rubedo</dt>
16.
18.
19. </dl>
20.
Analizând codul, se poate concluziona că elementele și definițiile listei de definiții sunt încadrate
de tagurile <dl> şi </dl>. Denumirile elementelor sunt identificate prin tagurile <dt> şi definițiile lor
cu tagurile <dd>. Codul prezentat va produce efectul ca în imaginea 3.15.
Tabelele
Datele de tip text uneori este mult mai convenabil să fie prezentate în tabele. Rezultatele sportive,
rapoartele financiare, orarele sunt doar câteva dintre exemplele în care utilizarea tabelului poate fi
mai mult decât utilă. Astfel, tabelele sunt utilizate pentru structurarea datelor textuale.
Fiecare tabel este format din celule aranjate în rânduri. Tagul de bază pentru crearea unui
tabel HTML este <table>, în timp ce tagurile pentru crearea celulelor și a rândurilor sunt td şi
respectiv tr. Astfel, pentru crearea celulei se foloseşte tagul td – table data, iar pentru a crea un rând
al tabelului tagul tr – table row.
Structura descrisă a tabelului HTML este prezentată în imaginea 3.16.
În imaginea 3.16 se poate vedea structura unui tabel HTML. Fiecare celulă se formează utilizând
elementul <td>. Mai multe elemente <td> sunt grupate între ele într-un singur rând, folosind
elementul <tr>. La sfârșitul mai multor rânduri, se construieşte un tabel, grupându-se în cadrul
elementelor <table>. Cum arată totul tradus într-un cod HTML se poate vedea în exemplul următor:
code
source
1. <table>
2.
3. <tr>
4.
5. <td>1</td>
6.
7. <td>2</td>
8.
9. <td>3</td>
10.
11. <td>4</td>
12.
13. </tr>
14.
15. <tr>
16.
17. <td>5</td>
18.
19. <td>6</td>
20.
21. <td>7</td>
22.
23. <td>8</td>
24.
25. </tr>
26.
27. <tr>
28.
29. <td>9</td>
30.
31. <td>10</td>
32.
33. <td>11</td>
34.
35. <td>12</td>
36.
37. </tr>
38.
39. </table>
40.
Codul HTML prezentat coincide cu tabelul prezentat în imaginea 3.16. Ca şi conţinut definit al
celulelor sunt numerele, pe baza cărora se poate concluziona în ce ordine sunt
aranjate celulele tabelului HTML. Tabelul creat are trei rânduri cu câte patru celule. Efectul pe care îl
produce codul este prezentat în imaginea 3.17.
Stilizarea tabelelor HTML se realizează folosind CSS, iar singurele două atribute ale
tagului <table> pe care-l permite HTML5 sunt border şi sortable. Atributul border specifică dacă
tabelul va avea un cadru, în timp ce atributul sortable spune dacă tabelul va avea posibilitatea de
sortare. Având aceste lucruri în vedere, dacă este necesar să se obțină un tabel cu cadre, este
suficient să se scrie următoarele:
code
source
1. <table border="1">
2.
3. <tr>
4.
5. <td>1</td>
6.
7. <td>2</td>
8.
9. <td>3</td>
10.
11. <td>4</td>
12.
13. </tr>
14.
15. <tr>
16.
17. <td>5</td>
18.
19. <td>6</td>
20.
21. <td>7</td>
22.
23. <td>8</td>
24.
25. </tr>
26.
27. <tr>
28.
29. <td>9</td>
30.
31. <td>10</td>
32.
33. <td>11</td>
34.
35. <td>12</td>
36.
37. </tr>
38.
39. </table>
40.
Celule-antet
Tabelele HTML pot avea şi celule-antet. Acestea sunt celulele care definesc rândurile și coloanele.
Sunt create folosind tagul cu semnul th – table heading. Următorul exemplu ilustrează utilizarea lor.
code
source
1. <table border="1">
2.
3. <tr>
4.
5. <th>*</th>
6.
7. <th>monday</th>
8.
9. <th>tuesday</th>
10.
11. <th>wednesday</th>
12.
13. <th>thursday</th>
14.
15. <th>friday</th>
16.
17. </tr>
18.
19. <tr>
20.
21. <th>morning</th>
22.
26.
30.
31. <td> </td>
32.
33. </tr>
34.
35. <tr>
36.
37. <th>evening</th>
38.
42.
46.
49. </tr>
50.
51. </table>
52.
code
source
1. <table border="1">
2.
3. <tr>
4.
5. <td>1</td>
6.
7. <td>2</td>
8.
9. <td>3</td>
10.
11. </tr>
12.
13. <tr>
14.
17. <td>6</td>
18.
19. </tr>
20.
21. </table>
22.
Atributul colspan este folosit în a patra celulă sau în prima celulă din al doilea rând. Valoarea
atributului colspan este numărul 2, ce indică faptul că acesta va realiza unirea a două celule. Efectul
va fi ca în imaginea 3.20.
Imaginea 3.20 – Tabelul HTML în cadrul căruia sunt unite două celule pe orizontală
Din imaginea 3.20 se poate vedea că, de data aceasta a patra celulă ocupă spaţiul celor două celule,
adică că s-a făcut unirea a două celule consecutive - a patra și a cincea.
code
source
1. <table border="1">
2.
3. <tr>
4.
5. <td rowspan="2">1</td>
6.
7. <td>2</td>
8.
9. <td>3</td>
10.
11. </tr>
12.
13. <tr>
14.
15. <td>5</td>
16.
17. <td>6</td>
18.
19. </tr>
20.
21. </table>
22.
Atributul rowspan este setat pe prima celulă. Valoarea lui este setată pe numărul doi, ceea ce
înseamnă că se va realiza unirea a două celule pe verticală. Astfel, efectul codului prezentat va fi ca în
imaginea 3.21.
Imaginea 3.21 – Tabelul HTML în cadrul căruia sunt unite două celule pe verticală
Zonele tabelului
Tabelele HTML pot avea şi zonele lor, în care se poate restricţiona utilizarea în continuare
a conținutului. Astfel, este posibil să se definească antetul, body și partea de jos a tabelului, folosind
tagurile <thead>, <tbody> şi <tfoot>. Exemplul următor ilustrează tabelul HTML cu zonele definite.
code
source
1. <table>
2.
3. <thead>
4.
5. <tr>
6.
7. <td>header cell</td>
8.
9. </tr>
10.
11. <tr>
12.
14.
15. </tr>
16.
17. </thead>
18.
19. <tfoot>
20.
21. <tr>
22.
25. </tr>
26.
27. <tr>
28.
31. </tr>
32.
33. </tfoot>
34.
35. <tbody>
36.
37. <tr>
38.
41. </tr>
42.
43. <tr>
44.
46.
47. </tr>
48.
49. </tbody>
50.
51. </table>
52.
Cu codul prezentat sunt definite trei zone din cadrul tabelului HTML: header, footer şi
body. Browserele tratează, în general, conținutul tuturor părților în același mod, astfel încât definirea
diferitelor zone a tabelului poate avea efect abia în combinație cu stilizarea CSS, atunci când
diferitele zone ale tabelului se stilizează în moduri diferite. De asemenea, atunci când se imprimă un
document HTML, majoritatea browserelor repetă secțiunea head şi footer a fiecărei pagini pentru o
mai bună examinare. Atunci când se folosesc zonele menționate ale tabelelor HTML,
browserele permit și glisarea conținutului, respectiv partea body, indiferent de părţile head şi footer.
Este interesant de observat că diferite zone ale tabelelor HTML sunt prezentate în următoarea
ordine: <thead>,<tfoot>,<tbody>. Aceasta este ordinea corectă pentru definirea acestor zone, chiar
dacă pe pagină nu apar în această ordine. Astfel, întotdeauna trebuie să apară <thead> în faţa
părţilor <tfoot> şi <tbody>, iar <tfoot> în faţa <tbody>, după secţiunea <thead>.
code
source
2.
Cele două informații de bază care sunt definite în exemplul prezentat al linkului sunt adresa URL la
care indică linkul şi textul linkului. Linkul URL este definit ca valoare a atributului href, în timp ce
textul linkului, cel care este vizibil pe pagină, este definit între tagul de deschidere și tagul de
închidere <a> al elementului. În exemplu, acel text este Click to visit Google.
În imaginea 4.2 sunt prezentate cu culoarea roşie părțile care se referă la tagurile HTML pentru
crearea unui link. Cu culoarea verde este marcat atributul href, a cărui valoare URL definește adresa
linkului. Cu culoarea albastră este prezentat URL-ul, în timp ce cu culoarea neagră este marcat textul
linkului, care este vizibil pe ultima pagină.
Linkul HTML poate să conțină ca valoare a atributului href adresa URL relativă. Acest lucru este
ilustrat în exemplul următor:
code
source
2.
De data aceasta, ca valoare a atributului href este specificată adresa URL relativă. Când linkul indică
adresa URL relativă, lucrurile sunt mult mai complexe. Aşa cum îi spune și numele, această adresă
este relativă pe o altă locație. La linkurile HTML, aceasta este locația documentului HTML în sine, care
conține un astfel de link. Astfel, URL-ul relativ din exemplu se va referi la folderul în care se află
fișierul HTML cu un astfel de link, cu alte cuvinte, va fi căutată pagina cu numele contact-us.html în
același folder în care se află şi documentul care conține linkul.
Adresele URL relative din interiorul linkurilor sunt utilizate în general pentru conectarea între paginile
unui site, respectiv aplicații. Atunci, este nevoie să se acorde o atenție deosebită despre locația
linkului cu adresa relativă, deoarece acest lucru va determina în mod direct la care resursă se va referi
URL-ul relativ.
Pentru ca utilizarea adresei relative în linkuri să fie înțeleasă corespunzător, va fi creat un exemplu.
Structura fișierelor unui site poate să arate ca în imaginea 4.4.
Imaginea 4.4 – Structura fişier a unui site
Imaginea 4.4 ilustrează structura fișierelor site-ului HTMLcompany. Folderul rădăcină a site-ului are
numele HTMLcompany şi conține direct două foldere (about-us şi services) și un
fișier index.html. Fişierul index.html în cadrul folderului rădăcină reprezintă pagina de început a site-
ului.
code
source
2.
Linkul creat conține adresa relativă. Adresa este relativă folderului rădăcină a site-ului, astfel încât
începe cu numele folderului about-us. Având în vedere că este vorba de o adresă relativă, browserul
știe că folderul about-us ar trebui să caute în cadrul acelui folder HTMLcompany.
Cum ar arăta linkul în situația inversă: atunci când paginii john-doe.html trebuie să i se configureze
un link care duce la pagina principală a site-ului? Un astfel de link ar fi următorul:
code
source
1. <a href="../../index.html">link</a>
2.
Deoarece fișierul john-doe.html se află în interiorul unuia dintre subfoldere, este necesar într-un fel
să se execute legarea la pagina care se află în structura fișierului deasupra. Acest lucru se realizează
folosind două puncte, ce are ca efect întoarcerea la folderul anterior în structura fișier. Când se spune
anterior, se referă la folderul dinaintea celui în care există un fișier cu un astfel de link. În exemplul
prezentat, două puncte au fost utilizate de două ori, din moment ce fișierul john-doe.html se află la
două niveluri sub rădăcina folderului.
code
source
1. <a href="../../services/index.html">link</a>
2.
Adresa relativă începe prin specificarea dublă a două puncte prin care se efectuează poziționarea pe
folderul rădăcină al site-ului/aplicației. Din folderul rădăcină, se deschide folderul services, unde se
găsește fișierul index.html.
code
source
1. dev.mysite.com
2.
code
source
1. <a href="http://dev.mysite.com/services/index.html">link</a>
2.
În exemplul dat se poate constata folosirea adresei absolute în cadrul linkului. În producție, aplicația
web se mută în domeniul:
www.mysite.com
Adresa absolută specificată în interiorul linkului nu mai funcționează, deoarece acum numele hostului
este diferit. Astfel, în cadrul unui site pot exista sute de linkuri și dacă în cadrul fiecăruia este definită
o adresă absolută, aceasta atrage după sine o intervenție serioasă. Toate acestea pot fi prevenite prin
simpla folosire a adreselor relative şi în acest caz linkul ar avea aspectul următor (desigur, în funcție
de poziția documentului HTML care conține linkul):
code
source
1. <a href="services/index.html">link</a>
2.
Tagul <a> poate avea atributul opţional target, care defineşte în ce mod se activează linkul.
Atributul target poate avea una din valorile prezentate în tabelul 4.1.
Două valori cel mai frecvent utilizate ale atributului target sunt: _blank şi _self, prin care se poate
influenţa dacă pagina conectată se va deschide într-o filă separată. Exemple de utilizare a atributului
target sunt următoarele:
code
source
2.
În exemplul primului link, pagina conectată va fi deschisă într-o fereastră nouă sau în filă, iar în
exemplul celui de al doilea link, în cadrul paginii/filei pe care este deja încărcată pagina care conține
linkul.
Imaginea ca un link
Toate linkurile din cursul lecțiilor de până acum au fost strict textuale. Când se spune aşa ceva, se
consideră că, pentru activarea linkului, trebuie să se dea un clic pe textul care are funcția linkului. Este
o practică frecventă pe site-urile de astăzi ca linkurile să apar în diferite forme şi cu siguranță una
dintre cele mai comune forme este imaginea.
Pentru a se face o imagine link, tot ce trebuie să se facă este ca o astfel de imagine să se plaseze în
cadrul elementului <a>, ca în exemplul următor:
code
source
2.
Linkurile e-mail
Linkul poate fi creat astfel încât să fie referit unei adrese de e-mail. Astfel de linkuri, în loc să deschidă
o pagină, lansează programul implicit de e-mail. Dacă este, de exemplu, Microsoft Outlook, linkul va
lansa clientul de mail menționat, va deschide un dialog pentru o adresă nouă de mail şi în
câmpul address va introduce adresa care este determinată prin link.
code
source
2.
code
source
2.
De data aceasta, după adresa de e-mail, este definită şi secțiunea query string, cu perechile de chei și
valori. Astfel, cheia subject are valoarea Title, şi cheia body valoarea Message. În acest fel, atunci
când se deschide clientul de mail, vor fi completate și câmpurile care sunt definite în continuare în
cadrul query string.
Named anchor
Linkurile se pot folosi şi pentru a conduce utilizatorul la o parte din documentul HTML curent. În
acest scop, sunt setate named anchor care facilitează găsirea unor detalii în cadrul paginilor HTML
lungi.
Primul pas în permiterea conectării în cadrul documentului curent este crearea unei ancore/anchor.
Ancora poate fi orice element HTML cu id-ul setat al atributului, ca în exemplul următor:
code
source
2.
În exemplul de mai sus a fost creat un titlu folosind tagul <h2>, pe care a fost definită valoarea
atributului id. Pentru ca linkul să se refere la o ancoră astfel creată, este suficient să se scrie
următoarele:
code
source
2.
Ce sunt formularele HTML?
Termenul de formular era utilizat pentru documente tipărite care conţineau câmpuri (spaţii goale)
pentru introducerea datelor. HTML a preluat acest concept şi l-a adaptat formularelor ca să
funcționeze în mod digital.
Cel mai cunoscut formular de pe web este cel de pe pagina de start a motorului de căutare Google
(imaginea 5.1):
Formularul din imaginea 5.1 este cunoscut tuturor și funcționează foarte simplu.
Cu ajutorul acestui formular introducem cuvintele dorite în câmpul de căutare și apoi, folosind
butonul submit care este marcat în imagine ca Google Search, sunt transmise pentru prelucrarea
ulterioară.
<form></form>
Atributele ale căror valori sunt definite cel mai des în timpul dezvoltării unei aplicații web
sunt action şi method.
Atributul action specifică cui vor fi trimise datele formularului. În general, aceasta este adresa până la
fișierul de pe scriptul de server scris în unele limbaje de server. Dacă se omite această dată, browserul
va presupune că prelucrarea formularului utilizează aceeași pagină pe care se află formularul.
Atributul method definește modul în care vor fi transmise datele și poate avea două valori:
GET – datele formularului sunt trimise serverului printr-un URL. Informaţiile transmise în acest
mod sunt transparente şi supuse atacurilor din partea hackerilor. Deoarece un URL poate
avea cel mult 8192 de caractere, această metodă nu este adecvată pentru formulare mai
lungi. De asemenea, putem ajunge la transliteraţie sau transcripţie, iar unele caractere se pot
modifica sau pierde pe parcurs.
Luând în considerare atributele descrise pe care le poate avea elementul form, putem scrie următorul
cod HTML:
<input>
<textarea>
<button>
<select>
<fieldset>
<label>
Aceste elemente sunt responsabile pentru colectarea și transmiterea datelor. Toate vor fi prezentate
în continuarea acestei lecții.
Elementul <input>
Elementul input este cel mai important element al formularului. Poate apărea în mai multe variante
diferite, în funcție de valoarea atributului lui type. Diferite variante ale elementului input sunt
prezentate în tabelul 5.2.
Atribut Descriere
text element pentru introducerea textului
password element pentru introducerea parolei
radio element pentru selectarea unei opţiuni din mai multe opţiuni oferite
submit element pentru transmiterea datelor formularului
checkbox control care poate avea două poziţii: on şi off
color control pentru selectarea culorii (color picker)
datetime-local control pentru selectarea datei şi a orei
email element pentru introducerea adresei de mail
file buton ce activează fereastra pentru selectarea fişierului
hidden element ascuns
month element pentru selectarea lunii şi a anului
number element pentru introducerea doar a numerelor
range element slider pentru selectarea valorilor numerice
search element pentru introducerea textului pentru căutare
tel element pentru introducerea numărului de telefon
time control pentru introducerea timpului
url element pentru introducerea adresei URL
week element pentru introducerea săptămânii şi a anului
Notă
Cu culoarea portocalie sunt marcate atributele care au apărut în limbajul HTML5.
Elementul input este creat folosind tagul cu autoînchidere, deoarece nu poate avea niciun continut,
ci numai atribute. În continuare vor fi prezentate unele dintre cele mai importante variante de
elemente input HTML.
Input (text)
Elementul input pentru introducerea unui text simplu este creat prin setarea valorii atributului type
pe text, ca în exemplul următor:
code
source
2.
Pe lângă atributul type, în exemplu este indicată şi valoarea pentru atributul name. Aceasta este o
dată foarte importantă pentru scriptul care va procesa datele acestui formular, deoarece datele vor fi
identificate pe baza valorii name a atributului.
code
source
2.
code
source
2.
Input (password)
Când este nevoie să se asigure utilizatorului introducerea parolei, se utilizează elementul input a
cărui valoare type a atributului password este ca în exemplul următor:
code
source
1. <input type="password" name="pass" id="pass">
2.
Din imaginea 5.5 se poate vedea că nu există text lângă control, deoarece nu este creat tagul label.
Totuşi, textul se poate adăuga simplu, prin setarea tagului label cu atributul for="pass".
Din imaginea 5.5 se mai poate vedea şi că acest tip de element input ascunde caracterele care se
introduc, dar nu garantează de la sine securitate în trimiterea datelor.
Input (Radio)
code
source
2.
3. <label for="Serbia">Serbia</label>
4.
5.
6.
7. <br />
8.
9.
10.
11. <input name="country" type="radio" id="Romania" value="Romania">
12.
14.
15.
16.
18.
19.
20.
22.
Pentru a crea fiecare element, adică o posibilă alegere, se foloseşte un element input separat, de
tip radio. Pentru ca browserul să ştie că mai multe taguri input diferite creează un grup, este
necesar să se seteze valori identice ale atributului name.
În exemplu este valoarea county a atributului name și în felul acesta este posibil să se selecteze
numai o singură țară din cele trei oferite.În caz contrar, adică dacă valorile atributului name nu sunt
identice, fiecare Radio Button s-ar comporta ca o entitate separată şi nu ar fi atins efectul dorit.
În exemplu, pentru fiecare element input este definită și valoarea atributului value. Acesta este un
atribut cu ajutoul căruia se defineşte valoarea care va fi transmisă spre procesare.
Pentru identificarea controlului Radio Button pe pagină, se utilizează elementele label, în același
mod în care sunt folosite și elementele input text. Valoarea atributului for a elementului label se
potrivește cu valoarea atributului id corespunzătoare controlului Radio Button.
Dacă este nevoie ca un Radio Button să fie bifat atunci când se încarcă pagina, se foloseşte
atributul boolean checked. De exemplu, dacă este nevoie ca după încărcarea paginii, Radio Button
bifat să fie cel care indică țara cu numele Romania, este suficient să se facă următoarele:
code
source
2.
Input (checkbox)
În paragraful anterior a fost prezentat elementul HTML pentru crearea unui control radio şi tehnici
cu care se realizează crearea unui grup de astfel de controale, din care se poate alege doar unul.
HTML are şi un element care permite crearea controlului checkbox. Acesta este controlul care poate
avea două stări: on/off, respectiv true/false sau bifat/nebifat. Spre deosebire de controlul radio,
checkbox, se utilizează în general singur, când trebuie să se obţină de la utilizator un simplu da/nu
ca răspuns la întrebare.
code
source
2.
Input (submit)
Elementul input poate apărea într-o altă variantă. Acesta este un format care permite crearea
controlului pentru transmiterea datelor formularului. Aşa ceva se realizează prin setarea valorii
atributului type la submit, la fel ca în exemplul următor:
code
source
2.
Input (hidden)
Unul dintre elementele input este şi cel care nu are o reprezentare vizuală a sa pe pagină și se obține
prin setarea tipului elementului inpput la hidden. Adesea este numit şi câmp ascuns. Deşi ideea unui
câmp ascuns în formular poate părea contradictorie, un astfel de control este posibil şi se utilizează
chiar foarte des. Câmpul ascuns, după cum îi spune şi numele, nu este vizibil utilizatorului, însă se
poate utiliza pentru salvarea temporară a unor date. Când spunem că nu este vizibil, spunem că nu
este afişat pe pagină. Câmpul de tip hidden este desigur vizibil în codul paginii şi ce este mai
important, valoarea câmpului hidden se transmite formularului ca și valoare a oricărui alt câmp.
Următorul exemplu ilustrează crearea unui câmp ascuns:
code
source
2.
Câmpul ascuns se foloseşte, de obicei, pentru a scrie anumite date în el în timpul încărcării paginii și
pentru a le trimite apoi scriptului la procesare. De exemplu, imaginaţi-vă un formular pentru sugestii
şi comentarii de pe un site care vinde produse. Dacă utilizatorul este logat atunci când formularul
este deschis, site-ul îi poate scrie ID-ul din baza de date în câmpul ascuns. Această dată nu are nicio
importanţă pentru utilizator, deci, folosirea câmpului hidden pentru astfel de valori este o alegere
ideală. În felul acesta, atunci când utilizatorul introduce datele şi le trimite formularului, este trimis și
ID-ul lui.
Input (number)
HTML5 aduce destule elemente input noi, printre care este şi elementul input de tip number. Acest
element permite introducerea valorii numerice folosind controlul care deține tastele Up şi
Down pentru selectarea valorii numerice (imaginea 5.9). Următorul cod ilustrează modul în care se
creează elementul input number:
code
source
2.
După cum s-a spus deja, elementul input de tip number se randează pe pagină ca un control la care
valoarea se alege folosind tastele Up şi Down de pe partea dreaptă a elementului.
Input (color)
Imaginea 5.11 – Color picker care se prezintă prin activarea elementului input color
Input (range)
HTML5 aduce şi controlul care permite selectarea valorii numerice într-un interval definit, care se
randează cel mai adesea pe stație ca un slider control. Un astfel de control se creează folosind
elementul input de tip range, ca în exemplul următor:
code
source
2.
Notă
Toate controalele input HTML5 prezentate până acum își manifestă puterea reală în combinație cu logica care
se poate defini folosind limbajul JavaScript. Acest lucru va fi subiectul unuia dintre modulele următoare.
Elementul <textarea>
Pentru a se permite utilizatorului introducerea unui text cu mai multe rânduri, se utilizează
elementul textarea. Spre deosebire de elementul input text, textarea nu se creează folosind
tagul cu autoînchidere, acest lucru necesită un tag de deschidere și un tag de închidere între care
este posibil să se introducă textul care se va prezenta în control atunci când se încarcă pagina. Dacă
un astfel de text nu este șters de utilizator, va fi trimis împreună cu datele.
code
source
2.
Elementul button este folosit pentru a crea un buton lateral. Cu toate acestea, spre deosebire de
input a elementului submit, elementul button nu este creat folosind tagul auto-etanșare, adică are
propriul început și sfârșit. Acest lucru permite ca elementul să accepte conținutul unei forme arbitrare
și astfel să creeze butoane de control folosind diferite elemente. Tocmai aşa ceva ilustrează
următorul exemplu:
code
source
1. <button type="button">
2.
5. Finish
6.
7. </button>
8.
Exemplul prezintă un element button care conține o imagine și text. Pe elementul button este
definită şi valoarea atributului type. Ca valoare este setat textul button, ceea ce face acest element un
buton obișnuit, fără niciun scop special. În plus față de această valoare, pot fi utilizate și valorile
submit și reset, care permit crearea de butoane cu scopuri speciale. Tipul submit definește faptul că
este vorba de un buton care va activa transmiterea formularului, iar tipul reset că este vorba de un
buton care va reseta datele formularului la valori iniţiale.
Elementul <select>
Ceva mai devreme a fost prezentat elementul care permite utilizatorului să selecteze una din
opțiunile oferite. Acesta a fost elementul input de tip radio. HTML cunoaște încă un element cu
același scop, dar într-o formă ceva mai diferită. Este vorba de elementul select.
code
source
2.
3. <option value="Serbia">Serbia</option>
4.
6.
7. <option value="Ukraine">Ukraine</option>
8.
9. </select>
10.
Notă
Odată cu specificarea boolean a atributului selected și ceva mai devreme a atributului checked, se poate
observa o anumită diferență. Atunci când este definit atributul checked în paragraful despre controlul radio
input, acest lucru este făcut prin specificarea directă a valorilor sale. Pe de altă parte, odată cu specificarea
atributului selected, sunt definite şi numele și valoarea sa. Despre ce este vorba?
De fapt, ambele abordări sunt corecte. În primul caz este aplicată tehnica care se numește minimizarea
atributului, care este permisă numai în varianta limbajului HTML, dar nu și în varianta xHTML. Astfel,
următoarele două linii sunt total analoage:
<option value="Romania" selected="selected">Romania </option>
şi
<option value="Romania" selected>Romania</option>
code
source
2.
3. <option value="Serbia">Serbia</option>
4.
6.
7. <option value="Ukraine">Ukraine</option>
8.
9. </select>
10.
code
source
1. <select>
2.
3. <optgroup label="Europe">
4.
5. <option value="romania">Romania</option>
6.
7. <option value="serbia">Serbia</option>
8.
9. <option value="ukraine">Ukraine</option>
10.
11. </optgroup>
12.
14.
18.
19. </optgroup>
20.
21. </select>
22.
Imaginea 5.16 – Elementul Select cu două grupe create folosind elementul optgroup
textarea
text
password
radio button
code
source
2.
3. <fieldset>
4.
5. <legend>Personal info</legend>
6.
10.
11.
12.
14.
17. </fieldset>
18.
19.
20.
21. <fieldset>
22.
23. <legend>Contact</legend>
24.
26.
29.
30.
34.
35. </fieldset>
36.
37. </form>
38.
În lecțiile anterioare au fost prezentate cele mai importante elemente HTML, care reprezintă blocuri
constitutive ale unui limbaj complet. Fiecare document HTML, pe lângă elementele care au o
reprezentare vizuală pe pagină, trebuie să aibă şi propriul lui antet, cu elementele care, în general, nu
sunt vizibile pe pagină, dar joacă un rol important în funcționarea ei. Așadar, această lecție va fi
dedicată antetului documentului HTML și elementelor care pot fi găsite aici.
Elementul rădăcină a fiecărui document HTML este elementul html. Începe cu tagul de
deschidere <html> şi întotdeauna se termină cu tagul de închidere </html>. Unele dintre cele mai
importante caracteristici ale elementului html sunt următoarele:
code
source
1. <html xmlns="http://www.w3.org/1999/xhtml">
2.
head
body
Elementul body conține corpul documentului, iar elementul head reprezintă antetul documentului și
este subiectul acestei lecții. Structura de bază a elementelor documentului HTML este prezentată în
imaginea 6.1.
Elementul <head>
Elementul head începe cu tagul <head> şi se termină cu tagul </head>. Acesta este elementul
rădăcină pentru toate datele antetului unui document HTML. Elementul <head> este elementul
părinte pentru următoarele elemente HTML:
<title>
<style>
<base>
<link>
<meta>
<script>
<noscript>
Notă
În limbajul HTML 5, elementul <head> nu este necesar să fie definit pentru ca pagina să fie validă, dar în
acest caz elementul <title> trebuie definit, având în vedere că este necesar ca fiecare document HTML să
aibă un nume.
Elementul <title>
fereastra browserului
favorite
Elementul <style>
Într-un document HTML este posibil să fie un număr mai mare de elemente style.
code
source
1. <style media="value"><br><br>
2.
Ca valoare a atributului media, este posibil să se specifice diferite valori implicite, dar şi dimensiunile
dispozitivului de afișare, pentru care se va aplica stilizarea.
Notă
Mai multe despre media query vom vorbi în modulul despre stilizarea documentului HTML.
Notă
Atributul scoped este sprijinit în prezent doar în browserul Firefox.
Atributul type definește tipul de conținut al atributului style. Valoarea lui este text/css, ceea ce indică
faptul că conținutul este scris în limbajul CSS. Elementul style cu atributul type arată astfel:
<style type="text/css">
În limbajul HTML5 nu este necesar să se specifice valoarea acestui atribut, deoarece valoarea lui
implicită este text/css.
Elementul <base>
code
source
1. <html>
2.
3. <head>
4.
6.
7. <title></title>
8.
9. </head>
10.
11. <body>
12.
14.
15. <a href="onlineservis">IT Academy On-Line Service</a>
16.
17. </body>
18.
19. </html>
20.
În cadrul părţii body a paginii din exemplu se află o imagine care este plasată în document, folosind
elementul img și un link creat folosind elementul a. Toate acestea sunt elementele pe care le vom
analiza în detaliu în continuarea cursului. Aici sunt doar pentru a arăta utilizarea adresei de bază.
Chiar dacă nici calea către imagine, nici adresa linkului nu sunt absolute, imaginea se afișează fără
probleme și linkul funcționează datorită utilizării adresei de bază. Astfel, efectul codului prezentat
este ca în imaginea 6.3.
Imaginea 6.3 – Pagina cu linkul care duce la adresa URL care se formează folosind adresa de bază
Elementul base este necesar să aibă valoarea definită pentru unul din cele două
atribute: href sau target.
Elementul <link>
code
source
1. <head>
2.
5. </head>
6.
Elementul <meta>
descrierii paginii
cuvintelor-cheie
autorului documentului
code
source
1. <head>
2.
5. </head>
6.
Meta-elementul se scrie întodeauna în cadrul secţiunii head, de un număr arbitrar de ori. În varianta
limbajului HTML 5, meta-elementul nu are tag de închidere.
Perechile de chei și valori pot fi definite şi folosind atributul http-equiv pentru definirea cheilor, iar
atributul content, pentru definirea valorilor. Atributul http-equiv permite înscrierea valorilor în antetul
mesajului HTTP.
Link
meta
title
html
Elementul <script>
Notă
O mare parte a acestui curs, în lecţiile următoare, va fi dedicată limbajului pentru crearea scripturilor client –
JavaScript.
code
source
1. <script>
2.
5. </script>
6.
defer defer defineşte ca scriptul extern să se execute atunci când se termină parsarea completă a
paginii
Elementul <noscript>
Elementul noscript este utilizat pentru a defini conținutul alternativ care urmează să fie afișat
utilizatorilor în a căror browsere este dezactivată sau nu este acceptată executarea scriptului. Acest
element poate fi definit în cadrul secțiunii head sau body. Exemplu de utilizare a
elementului noscript:
code
source
2.
3. </script>
4.
5.
6.
Unitate: 7 din 30
Imaginile
Imaginile reprezintă o parte indispensabilă a documentelor HTML şi în special a site-urilor
moderne. Prin conceptul de imagine sunt subînţelese fotografiile, graficele, diagramele, iconiţele, și,
în general, toate acele fișiere care reprezintă unele formate de imagine. Înainte de a fi prezentate
tehnicile de setare a lor în documente HTML, este necesar să ne ocupăm de termenii generali legați
de imaginile în format digital.
Formate de imagine
În cadrul documentelor HTML în general sunt folosite imagini, într-unul din cele trei formate:
JPG
GIF
PNG
Imaginea 7.1 – Formatele imaginilor care se folosesc cel mai frecvent în documentele HTML
JPG format (Joint Photographic Experts Group) sunt fişierele care folosesc extensia .jpg sau .jpeg.
Acest format nu susține transparența (engl.Transparency) şi nici animația, dar este excelent pentru
comprimarea fotografiilor. Astfel, fotografiile se pot optimiza foarte eficient prin reducerea
dimensiunii fişierului. Totuşi, este important de înțeles că dimensiunea fişierului este invers
proporțională cu calitatea lui, deci în timpul compresiei trebuie să se găsească un raport
corespunzător între consumul de memorie și calitate.
GIF (Graphic Interchange Format) este formatul de afișare a imaginilor, care este limitat la 256 de
culori. Aceste imagini sunt excelente pentru desene tehnice, pentru thumbnail, imagini mici şi iconiţe.
Formatul GIF permite crearea imaginilor cu un număr redus de culori (2, 4, 16 etc.), așa că putem
salva mult din dimensiune în momentul în care creăm fișierele. Formatul GIF susține transparența (cu
multe restricții) și animația, ceea ce înseamnă că putem crea imagini cu efect de mişcare etc. În fazele
inițiale ale dezvoltării animației pe Internet, animațiile GIF se utilizau frecvent, în timp ce astăzi sunt
tot mai puține nevoi în acest sens,datorită abordărilor mai moderne în crearea animației. Astfel, GIF
se foloseşte tot mai puţin.
PNG (Portable Network Graphic) este cel mai nou format suportat de către toate browserele web
actuale și combină funcţionalitățile formatelor GIF și JPEG. Acest format raster pentru imagini
foloseşte comprimarea fără pierderi. Utilizează RGB și sistemul de culori în toate tonurile. Există două
tipuri de formate:
PNG-24, care conține informații de 24-biţi despre culori (combină cele mai bune aspecte ale
formatelor GIF și JPG).
PNG-8 nu susține animația, dar susține transparența mai bine decât GIF, în timp ce PNG-24 susține
transparența şi o calitate a imaginii mai bună decât JPG. Totuşi, fişierele PNG sunt mult mai mari, iar
browserele mai vechi nu se descurcă prea bine cu ele (de exemplu, Internet Explorer 6 nu susține
transparenţa PNG).
În final, să rezumăm toate cele trei tipuri de formate menţionate. Performanţele de bază ale
formatelor menționate sunt prezentate în tabelul 7.1.
Formatul Performanţe
JPG pentru fotografie şi imagini cu multe detalii
compresia lossy
16-biţi color
nu suportă transparenţa, nici animaţia
GIF pentru iconiţe şi imagini thumbnail
compresia lossless
maxim 256 de culori
transparenţa şi animaţia
PNG pentru logouri, grafică web şi imagini care necesită
transparenţă
8 sau 24 de biţi
compresia lossless
transparenţa şi animaţia
Gif
Jpg
Png
Imaginile digitale ca și orice alt conținut sunt afișate pe monitoarele calculatoarelor și alte dispozitive
digitale folosind puncte mici numite pixeli. Fiecare imagine este, de asemenea, compusă din
numeroşi pixeli. Numărul acestor pixeli per inch se numeşte rezoluția imaginii sau Pixels Per
Inch – PPI. Rezoluția standard pentru monitoarele de astăzi este de la 70 la 130 PPI, în timp ce la
unele dispozitive mobile, acest număr depășește şi 500.
Pe lângă rezoluție, atunci când lucrăm cu imagini trebuie să avem grijă şi de dimensiunile lor, adică
de lățimea (engl. width) și înălțimea (engl. height) imaginilor.
La imaginile digitale, dimensiunile sunt exprimate în general in pixeli, astfel, putem spune că
dimensiunea unei imagini este de 600x400 pixeli. Cât spațiu pe ecran va ocupa această imagine până
la sfârșit depinde în exclusivitate de rezoluţia acestor display-uri (PPI). La display-urile cu o rezoluție
mai mare, aceeași imagine va fi mai mică și viceversa.
Adăugarea imaginilor în documentul HTML
Pentru a adăuga imagini pe un document HTML, folosim elementul img. Acest element este
construit folosind tagul cu autoînchidere, deoarece nu poate accepta conţinut, ci doar atribute.
Elementul img este definit de două atribute obligatorii:
alt – defineşte textul care va fi afișat vizitatorului site-ului dacă, indiferent de motiv, imaginea
nu se afișează; acest text este utilizat şi de cititorii-mașină ai paginii HTML pentru a înțelege
mai bine conținutul imaginii
Când se iau în considerare toate lucrurile menționate până acum despre elementul img, codul pentru
setarea unei imagini într-un document HTML poate fi următorul:
code
source
2.
Pe lângă cele două atribute obligatorii menţionate, care trebuie să fie definite pe fiecare element
img, acest element permite definirea altor atribute opționale. Aceste atribute sunt următoarele:
ismap – defineşte imaginea, ca o parte a hărţii server; în felul acesta este permis să se dea
clic pe diferite regiuni ale imaginii, iar coordonatele clicului sunt trimise ca valori query string;
se poate folosi doar atunci când elementul img este descendentul unui element
În lista atributelor opționale menţionate, se pot vedea și cele care permit crearea hărților de imagini.
Acest lucru este posibil să se realizeze pe pagina client, dar și pe pagina de server. Atributul ismap
permite crearea hărților de imagini utilizând serverul, astfel că atunci când se dă clic pe imagine,
coordonatele pe care se află cursorul mouse-ului în momentul clicului sunt transmise serverului
prin query string. Următorul exemplu ilustrează aşa ceva:
code
source
1. <a href="map.html">
2.
5. </a>
6.
Imaginea trebuie plasată în interiorul elementului, așa cum se vede în exemplu. Cu un clic pe
imagine, pe adresa linkului sunt transmise coordonatele mouse-ului. Acest lucru este ilustrat în
imaginea 7.3.
Imaginea 7.3 – Trimiterea coordonatelor cursorului mouse-ului la server, atunci când se dă clic pe
imagine
Pentru a crea hărţi de imagine, se poate utiliza şi atributul usemap. Acest atribut permite crearea
hărţilor de imagine pe client. Această abordare este foarte populară, având în vedere faptul că
utilizatorul poate vedea imediat ce efect a produs clicul pe o anumită parte a imaginii.
code
source
2.
3.
4.
5. <map name="planetmap">
6.
10.
13. </map>
14.
Atunci când se definește harta imaginii pe client, în cadrul imaginii, sunt definite suprafeţele pe care
se va putea da clic. Suprafețele sunt definite în cadrul hărţii, respectiv în interiorul elementului map,
în timp ce fiecare suprafaţă este reprezentată de elementul area. Există patru tipuri de câmpuri care
pot fi create: rectangle, circle, polygon şi default. Pentru fiecare formă sunt definite
coordonatele care determină poziția și dimensiunea ei, dar şi adresa care va fi deschisă atunci când
se dă clic pe un astfel de câmp. Harta care se creează utilizând elementul map trebuie să fie atribuită
imaginii şi astfel va deveni harta imaginii; acest lucru se poate realiza cu atributul usemap.
Exemplul prezentat produce un efect ca în imaginea 7.4 (cu condiţia ca imaginea cu numele
planets.png să existe în folderul rădăcină):
Sunetul
Limbajul HTML5 împinge considerabil limitele, atunci când este vorba de lucrul cu multimedia.
Această afirmație este în special valabilă, atunci când este vorba de lucrul cu sunetul. Înainte de
HTML5, nu exista standardul pentru redarea fișierelor audio în cadrul documentelor HTML şi singura
modalitate de a face aşa ceva era utilizarea adaosurilor (plug-in), ca de exemplu Flash.
Mp3 (MPEG-2 Audio Layer III) – cel mai popular format pentru prezentarea fișierelor audio de
pe internet; se aplică compresia cu pierdere a calităţii, dar cu un raport bun între
dimensiunea și calitatea fișierului; protejat prin brevet; suportat de toate browserele
code
source
1. <audio controls>
2.
6.
9. </audio>
10.
În imaginea 7.5, se poate observa că parserul (în cazul acesta, browser-ul) a renderat elementul audio
ca player cu controalele pentru redare. Controalele sunt aici, deoarece pe elementul audio este setat
atributul boolean controls. Altfel, controalele nu ar fi fost vizibile.
La fel ca atunci când se lucrează cu imaginile, fișierele audio nu pot fi instalate direct în documentul
HTML, ci în cadrul lui doar se leagă. Acest lucru se realizează prin utilizarea elementului source. În
exemplu sunt definite două astfel de elemente, iar browserul va reda primul fișier al cărui format îl
sprijină.
Dacă se întâmplă ca browserul să nu poată reda sunetul în cadrul documentului HTML, utilizatorului
îi va fi afișat textul care este definit între tagurile<audio> şi </audio>. În exemplul nostru apare
textul Your browser does not support the audio element.
Atunci când se leagă fișierul audio, se specifică şi tipul său, folosind atributul type. Ca valoare a
acestui atribut, se setează tipul MIME, iar formatele audio pe care elementul audio le suportă și
tipurile lor MIME care le aparţin sunt prezentate în tabelul 7.2.
Din tabelul 7.3 se poate observa, de asemenea, că elementul audio poate conține şi atributul src,
evitându-se astfel obligația de a defini unele elemente individuale source. În acest fel, exemplul
prezentat se poate modifica:
code
source
2.
5. </audio>
6.
Video
La fel ca în cazul cu redarea fișierelor audio, înainte de apariția limbajului HTML5 nu a existat niciun
standard pentru redarea fișierelor video în cadrul documentelor HTML. Limbajul HTML5 introduce
elementul video care permite acest lucru.
În cadrul documentului HTML, este posibil să se redea fișierele video în trei formate diferite:
MP4 (MPEG-4 Part 14) – formatul container dezvoltat de Moving Pictures Expert Group; se
bazează pe QuickTime. Este suportat de toate browserele și recomandat de către site-ul
YouTube
WebM – format dezvoltat de către compania Mozilla, Opera, Adobe şi Google; sponsorizat în
prezent de către compania Google
Aşa cum s-a menționat deja, redarea fișierelor video în cadrul documentului HTML se poate realiza
prin utilizarea elementului video. Următorul exemplu ilustrează utilizarea acestui element:
code
source
2.
6.
7. </video>
8.
Tagul video poate conține toate acele atribute pe care le cunoaște și tagul audio. Atributul
caracteristic pentru elementul video este atributul poster, cu care se poate defini URL-ul unde se
află imaginea care va fi afișată în timp ce se încarcă conținutul video și atâta timp cât acesta nu
pornește.
Grafica 2D
Unitate: 8 din 30
Limbajul HTML permite crearea ușoară a părţilor textuale ale documentului, cum ar fi antetele,
paragrafele, tabelele și altele asemenea. Totuşi, adesea apare necesitatea ca un document HTML să
conțină grafică 2D. Până la apariția limbajului HTML5, pentru afișarea graficii 2D, în general s-au
folosit imagini sau tehnologia numită Flash, care a permis ca paginile HTML să definească elementele
interactive atât de necesare, pe care limbajul HTML la acel moment nu le suporta inițial. Odată cu
apariția limbajului HTML5, lucrurile s-au schimbat drastic şi suportul pentru grafica 2D este integrat
în partea centrală a limbajului.
Pentru afişarea graficii 2D în cadrul documentului HMTL, HTML5 are două tehnologii:
SVG
Canvas
SVG
SVG este un acronim pentru termenul Scalable Vector Graphics, care este în esență un limbaj
descriptiv, bazat pe XML, care se utilizează pentru crearea graficii 2D. Elementul HTML care se
utilizează pentru a desena grafica SVG este svg. Acest element poate fi experimentat ca un container
pentru diferite elemente grafice care pot fi desenate pe pagină, astfel încât se poate face o paralelă
între elementele html şi svg. În același mod în care elementul html prezintă containerul pentru
toate acele unităţi textuale ale paginii, elementul svg este un container pentru elementele graficii
2D. Următorul exemplu ilustrează modul în care se poate desena un dreptunghi, folosind SVG.
code
source
1. <svg version="1.1"
2.
3. baseProfile="full"
4.
5. width="300" height="200"
6.
7. xmlns="http://www.w3.org/2000/svg">
8.
9.
10.
13.
14.
15. </svg>
16.
Deoarece SVG este un limbaj XML derivat, în cadrul tagului svg se specifică spațiul de nume XML,
folosind atributul xmlns sau versiunea şi profilul limbajului care se utilizează. Pe lângă informațiile
menţionate, elementul svg definește şi înălțimea și lățimea spațiului, respectiv atributele width
şi height în care va fi prezentată grafica 2D.
Limbajul SVG în sine definește numeroase elemente pentru desenarea diferitelor forme grafice. În
exemplu este folosit elementul rect, cu care se desenează dreptunghiul. Este definit că dreptunghiul
va avea lățimea de 200 și înălțimea de 100 de pixeli, definind atributele width şi height. Semnificația
și efectul celorlalte atribute sunt următoarele:
Așa cum se poate vedea în exemplu, pentru desenarea formelor se creează elementul în interiorul
containerului svg. În exemplu a fost un dreptunghi, iar SVG cunoaște încă câteva forme de bază, care
au tagurile lor proprii pentru creare. Astfel, SVG cunoaște următoarele forme de bază:
dreptunghi (rect)
cerc (circle)
elipsă (ellipse)
linie (line)
polilinie (polyline)
poligon (polygon)
cale (path)
În paranteze sunt menţionate numele elementelor care se folosesc pentru desenarea unor forme
adecvate.
Sistemul de coordonate SVG
Toate formele sunt desenate în interiorul granițelor, respectiv în cadrul sistemului de coordonate al
elementului SVG. Sistemul de coordonate are două axe, iar o formă SVG într-un astfel de sistem este
prezentată în imaginea 8.2.
Dreptunghiul (rect)
Elementul rect se foloseşte pentru desenarea dreptunghiului. Acest element cunoaşte 6 atribute
diferite, cu care se controlează poziția, mărimea și forma dreptunghiului. Aceste atribute sunt
prezentate în tabelul 8.1.
Tabelul 8.1 – Atributele rect în format SVG
Luând în considerare toate atributele, următorul exemplu ilustrează crearea a două dreptunghiuri:
code
source
2.
Cercul (circle)
Elementul circle se utilizează pentru desenarea cercului. Acest element defineşte 3 atribute,
prezentate în tabelul 8.2.
Tabelul 8.2 – Atributele circle în format SVG
code
source
2.
Elipsa (ellipse)
Elipsa este o forma geometrică care la bază este un cerc căruia i se pot seta independent razele x și y.
Elementul pentru desenarea unei elipse este ellipse și acesta permite specificarea atributelor
prezentate în tabelul 8.3.
Tabelul 8.3 – Atributele ellipse în format SVG
code
source
2.
ellipse
circle
rect
square
Linia (line)
Pentru crearea liniei drepte se utilizează elementul line. Linia se definește cu un punct de început și
de sfârșit și, prin urmare, deține şi atributele acestui element (tabelul 8.4).
code
source
2.
În codul pentru crearea liniei este definită grosimea ei, folosind atributul stroke-width şi culoarea,
utilizând atributul stroke.
Linia întreruptă (polyline)
Liniile întrerupte sunt grupuri de linii drepte interconectate. Sunt definite de un şir de coordonate ale
punctelor care construiesc o astfel de linie. Pentru a crea aceste linii este utilizat
elementul polyline, care definește doar un atribut pentru a cărui valoare sunt setate coordonatele
tuturor punctelor liniei.
Atributul Descriere
points un şir de puncte separate prin virgulă,
care sunt definite prin coordonatele x și y
code
source
1. <polyline points="30 55,60 25,100 65,140 20,185 70,230 15,280 75, 340 10, 400
85, 460 5" stroke-width="3" stroke="#FF7F7F" fill="none"/>
2.
Liniile întrerupte unite cu liniile drepte construiesc forma geometrică cu umplere, astfel încât este
necesar să se seteze fill unei astfel de forme la none, pentru a se vedea doar linia. Codul prezentat
produce linia ca în imaginea 8.7.
Imaginea 8.7 – Linia întreruptă creată folosind polyline în format SVG
Poligonul (polygon)
Poligoanele sunt formele care sunt compuse din linii drepte, interconectate. Ca și la polilinii, sunt
definite de un set de puncte ale anumitor coordonate x și y, dar punctul de început și sfârşit sunt
conectate automat și astfel este creată o formă închisă. Poligoanele sunt desenate cu ajutorul unui
element polygon, iar setul de puncte este definit în cadrul atributului points.
Atributu Descrierea
l
points şir de puncte despărţite de virgulă care sunt
definite de coordonatele x şi y
code
source
2.
Folosind atributul points, sunt definite coordonatele a trei puncte. Primul și ultimul punct vor fi unite
automat, deoarece este vorba de o formă polygon. Prin unirea primul și ultimului punct, se obține
forma care poate fi colorată. Acest lucru se face folosind atributul fill, iar culoarea este definită în
formă hexadecimală.
Calea (path)
Calea este forma cea mai generală și cea mai puternică a sistemului SVG. Cu ajutorul ei, este posibil
să se deseneze aproape toate formele, de la dreptunghi, cercuri și elipse, până la liniile întrerupte și
poligoane. Însă, nu se sfârşeşte aici enumerarea, căci folosind căile pot fi desenate şi curba Bezier,
curbe pătratice și altele asemenea.
Calea se desenează folosind elementul path, care cunoaşte doar un atribut, prezentat prin tabelul 8.7.
Atributu Descrierea
l
d şir de puncte despărţite de virgulă, care
sunt definite de coordonatele x şi y
Valoarea atributului d este compusă dintr-un şir de comenzi şi parametri. Comanda începe cu o
majusculă a alfabetului, după care urmează coordonatele x și y. Următorul exemplu ilustrează codul
pentru crearea unei curbe Bezier:
code
source
2.
Comenzile și coordonate pentru crearea unor forme mai complexe folosind elementul path vor fi
foarte rar scrise manual. Orice program serios pentru lucrul cu grafica vectorială are opțiunea de
a exporta formele vectoriale create în format SVG.
Canvas
O altă modalitate de a crea grafica 2D în interiorul documentului HMTL este folosirea elementului
Canvas. Spre deosebire de limbajul SVG, elementul Canvas se utilizează pentru desenarea
programabilă a graficii cu ajutorul JavaScript-ului. Conținutul elementului Canvas randează pixel
după pixel, iar în momentul în care grafica este desenată în interiorul elementului Canvas, pentru
browser, nu mai reprezintă nimic altceva, decât un set de pixeli. Când este nevoie să se facă
modificări ale graficii în interiorul Canvas, întreaga scenă se desenează din nou. Astfel, elementul
Canvas este cel mai des folosit pentru a crea grafica animată.
Canvas este creat folosind elementul <canvas>. Aşa cum elementul svg este utilizat pentru diverse
forme pe care le cunoaște limbajul SVG, aşa şi elementul Canvas este un container pentru grafica
care se desenează folosind JavaScript.
code
source
2.
Având în vedere că limbajul JavaScript este subiectul următoarelor module în această lecție, nu vom
acorda prea multă atenție desenării graficii, folosind Canvas. De aceea, următorul exemplu, care
prezintă desenul unui cerc în interiorul Canvas, este doar cu caracter informativ.
code
source
1. <body>
2.
3.
4.
6.
7.
8.
9. <script>
10.
11.
12.
14.
18.
19. ctx.arc(95,50,40,0,2*Math.PI);
20.
21. ctx.stroke();
22.
23.
24.
25. </script>
26.
27.
28.
29. </body>
30.
Gruparea elementelor
Unitate: 9 din 30
Pe parcursul cursului până acum, au fost prezentate diferitele elemente pe care le poate conține un
document HTML. Pagina HTML este cel mai adesea formată din diferite regiuni, care sunt create prin
gruparea mai multor elemente HTML. Astfel, pagina HTML poate apărea în diferite forme, atunci
când este vorba de aranjamentul conținutului. Unul dintre layout-uri care este, cel mai frecvent
folosit pe site-urile web de astăzi este prezentat în imaginea 9.1.
Imaginea 9.1 – Unul din cele mai frecvente modalităţi de aranjare a componentelor unei pagini HTML
a site-ului
În imaginea 9.1 se pot vedea diferite regiuni ale unei pagini HTML. În partea de sus a paginii se
află header, care conține, de obicei logoul și meniul de navigare. Partea centrală a zonei este
împărțită în două părți: content şi sidebar. În Content se află conținutul principal al paginii, în timp ce
în cadrul sidebar se poate găsi un conținut suplimentar sau o navigare suplimentară. Partea de jos a
paginii este rezervată pentru footer, care poate conţine informații copyright și altele
asemenea. Structura prezentată a paginii HTML este doar una din numeroasele aranjamente posibile
ale elementelor pe pagină. Astfel, elementele pot fi grupate în diferite moduri, din care unele sunt
prezentate în imaginea 9.2.
Imaginea 9.2 – Moduri diferite de aranjare a elementelor pe pagina HTML
Pentru aranjarea şi gruparea elementelor HTML sunt folosite diferite elemente HTML. Subiectul
acestei lecții vor fi tocmai elementele HTML, care permit crearea diferitelor zone ale documentului
HTML.
code
source
1. <div>
2.
3. <h3>This is a heading</h3>
4.
5. <p>This is a paragraph.</p>
6.
7. </div>
8.
Elementul div cel mai adesea se foloseşte în combinație cu CSS pentru stilizarea grupurilor de
elemente şi pentru a influenţa plasarea lor pe pagină. Pentru a se utiliza elementele div în crearea
structurii de bază a paginii cu trei zone, se pot scrie următoarele:
code
source
1. <body>
2.
3.
4.
5. <div id="header">
6.
9. </div>
10.
11.
12.
14.
15. Home<br>
16.
18.
19. Contact
20.
21. </div>
22.
23.
24.
25. <div id="section">
26.
27. <h1>Home</h1>
28.
29. <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget dolor
eget libero aliquam hendrerit. Aliquam hendrerit condimentum blandit. Maecenas
facilisis arcu vitae sem eleifend, eu volutpat libero rutrum. Morbi rhoncus mauris
eget laoreet placerat. Fusce vel ex sit amet justo blandit rutrum.</p>
30.
31. <p>Integer ultricies, sem eget volutpat commodo, massa justo iaculis sem, sit
amet tempor dui lorem tristique elit. Phasellus nec ornare augue, quis scelerisque
diam. Curabitur accumsan, lectus quis accumsan dictum, ligula sem fringilla enim, a
rhoncus justo urna eu odio.</p>
32.
33. </div>
34.
35.
36.
38.
41. </div>
42.
43.
44.
45. </body>
46.
În codul prezentat, elementele div sunt folosite pentru crearea a patru secțiuni ale paginii. Prima
secțiune prezintă header, a doua navigarea, a treia conținutul principal și a patra footer. În browser,
codul prezentat produce rezultatul ca în imaginea 9.3.
Imaginea 9.3 – Afişarea paginii HTML în browser cu zone definite
Având în vedere că zonele sunt create folosind elementele div de fapt, invizibile, în imaginea 9.3 ele
sunt marcate cu culoarea albastră pentru a se vedea marginile lor. Aşa cum se poate vedea din
imaginea 9.3, browserele adaugă întodeauna câte o linie goală înainte și după elementul div.
HTML5 layout
Oamenilor le este foarte ușor să observe conţinutul vizual, să distingă diferenţa dintre diferite
conținuturi de pe pagină. Totuşi, aşa ceva nu se poate spune şi pentru mașini. Browserul, de exemplu,
nu poate distinge care este funcția unui anumit div. Dacă el a fost conceput ca un container pentru
conținutul antetului sau poate ca un container pentru conținutul footer-ului sau al sidebar-ului?
Tabelul 9.1 – Elemente semantice pentru crearea regiunilor în cadrul documentului HTML
Având în vedere că acum, diferitele elemente sunt utilizate pentru diferite secțiuni ale unei pagini
web, parsere de coduri HTML pot determina mai precis care este rolul diferitelor segmente ale
paginii web. Atunci când browserul întâlnește elementul header cu ocazia parsării paginii, el știe că
conținutul lui a fost conceput ca un conținut vizual al antetului documentului.
code
source
1. <body>
2.
3.
4.
5. <header>
6.
9. </header>
10.
11.
12.
13. <nav>
14.
15. Home<br>
16.
18.
19. Contact
20.
21. </nav>
22.
23.
24.
25. <section>
26.
27. <h1>Home</h1>
28.
29. <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget dolor
eget libero aliquam hendrerit. Aliquam hendrerit condimentum blandit. Maecenas
facilisis arcu vitae sem eleifend, eu volutpat libero rutrum. Morbi rhoncus mauris
eget laoreet placerat. Fusce vel ex sit amet justo blandit rutrum.</p>
30.
31. <p>Integer ultricies, sem eget volutpat commodo, massa justo iaculis sem, sit
amet tempor dui lorem tristique elit. Phasellus nec ornare augue, quis scelerisque
diam. Curabitur accumsan, lectus quis accumsan dictum, ligula sem fringilla enim, a
rhoncus justo urna eu odio.</p>
32.
33. </section>
34.
35.
36.
37. <footer>
38.
41. </footer>
42.
43.
44.
45. </body>
46.
În exemplu, în loc de elementul div sunt folosite elementele HTML5 cu o semnificație semantică
specială. În continuarea lecției, vor fi procesate separat diferite elemente HTML5 pentru
crearea layout-ului.
Codul pentru crearea antetului unei pagini web poate arăta aşa:
code
source
1. <header>
2.
5. </header>
6.
code
source
1. <body>
2.
3. <header>
4.
6.
7. </header>
8.
9. <article>
10.
11. <header>
12.
14.
15. </header>
16.
17. </article>
18.
19. </body>
20.
Elementul <nav>
Pentru gruparea linkurilor de navigare, HTML5 are elementul semantic nav. În cadrul acestui element
pot fi găsite linkurile pentru a naviga pe site, dar și linkurile care conduc către alte site-uri. Meniul de
navigare se află în general în cadrul antetului web, deși aceasta nu este o regulă. Meniul de navigare
se poate găsi şi în cadrul sidebar-ului web al paginii. O pagină web conține adesea mai multe meniuri
de navigare, dintre care unul este meniul principal de navigare, iar restul sunt secundare. Următorul
exemplu ilustrează un meniu de navigare, care este creat folosind elementul de navigare nav, în
cadrul secțiunii header:
code
source
1. <body>
2.
3. <header>
4.
6.
7. <nav>
8.
10.
14.
15. </nav>
16.
17. </header>
18.
19. </body>
20.
code
source
1. <section id="main">
2.
3. <article>
4.
6.
7. </article>
8.
9.
10.
11. <article>
12.
14.
15. </article>
16.
17.
18.
19. <article>
20.
22.
23. </article>
24.
25. </section>
26.
Elementul section se poate utiliza şi pentru separarea conţinutului unui element article în mai
multe secţiuni diferite. Codul care ilustrează aşa ceva este următorul:
code
source
1. <article>
2.
3. <section id="introduction">
4.
5. </section>
6.
7.
8.
9. <section id="content">
10.
11. </section>
12.
13.
14.
17. </section>
18.
19. </article>
20.
Acest element nu trebuie amestecat cu antetul documentului complet HTML, care se obţine cu elementul . Conţinutul elementului head nu este
vizibil pe pagină, în timp ce conţinutul elementului header este.
<header>
<footer>
<article>
<section>
Elementul <aside>
Elementul aside definește conținutul care nu aparţine conținutului principal al paginii, dar este
poziționat pe partea stângă sau dreaptă a conținutului principal al documentului. Totuşi, ca și
celelalte elemente semantice pentru crearea unui layout, nici aside nu este poziționat automat pe
una din paginile conținutului principal, ci servește numai pentru a marca conținutul care se va afla
aici folosind stilizarea CSS. Candidaţii ideali care pot folosi acest element sunt sidebar, notele,
anunțurile și altele asemenea.
1. <section>
2.
3. <h1>Section 1</h1>
4.
6.
9. </section>
10.
code
source
1. <article>
2.
3. …
4.
5. <figure>
6.
7. <img src="orange.jpg"/>
8.
11. </figure>
12.
13. …
14.
15. </article>
16.
Aşa cum se poate vedea în exemplu, imaginea este plasată în interiorul elementului figure. Sub
imagine este adăugat elementul figcaption, care definește numărul de ordine al imaginilor din
document și numele acesteia.
Elementul <progress>
Deși nu se utilizează direct pentru a crea aranjamentul componentelor pe pagină, un alt element
HTML5 semantic este şi elementul progress.
Pentru a i se prezenta utilizatorului progresul executării unei lucrări, se poate utiliza elementul
menționat progress. Acest element poate fi utilizat în două forme diferite: determinat sau
nedeterminat.
Atunci când se cunoaște dinainte cantitatea de muncă care trebuie să fie făcută, putem vorbi despre
un anumit element progress, care este capabil să afișeze exact progresul lucrărilor. Un astfel de
element progress poate fi utilizat în situațiile când se efectuează upload-ul sau download-
ul fișierului, deoarece dimensiunea fișierului este cunoscută dinainte și în orice moment se poate şti
cantitatea de date care este transferată în rețea. Pentru a se crea elementul progress în care sunt clar
definite valoarea inițială și cea finală, se poate scrie următorul cod:
code
source
2.
3. <span>0</span>
4.
7. <span>1000</span>
8.
În situațiile în care nu este cunoscută durata unei munci, elementul progress poate fi utilizat într-o
formă nedeterminată. Acest lucru se realizează prin simpla îndepărtare a atributului value. Un
exemplu al unui astfel de element progress este următorul:
code
source
2.
3. <progress max="5"></progress>
4.
Notă
Diferite browsere, respectiv compilatoare randează în moduri diferite elementul progress.
Crearea layout-ului folosind elementul table
Uneori, pentru aranjarea elementelor documentelor HTML s-a folosit elementul table, astfel că şi
astăzi se pot întâlni unele site-uri care folosesc o astfel de abordare. Totuşi, este important de
menţionat că elementul table este responsabil cu prezentarea datelor în tabele, şi nicicum un
element pentru crearearea layout-ului. Astfel că putem spune că elementul table este adesea utilizat
în mod abuziv în scopul aranjării elementelor HTML pe pagină. Pentru a realiza exemplul de la
începutul acestei lecții, folosind greşit elementul table, putem scrie următoarele:
code
source
1. <table>
2.
3. <tr>
4.
5. <td>
6.
9. </td>
10.
11. </tr>
12.
13. <tr>
14.
15. <td>
16.
17. Home<br>
18.
22.
23. </td>
24.
25. </tr>
26.
27. <tr>
28.
29. <td>
30.
31. <h1>Home</h1>
32.
33. <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget dolor
eget libero aliquam hendrerit. Aliquam hendrerit condimentum blandit. Maecenas
facilisis arcu vitae sem eleifend, eu volutpat libero rutrum. Morbi rhoncus mauris
eget laoreet placerat. Fusce vel ex sit amet justo blandit rutrum.</p>
34.
35. <p>Integer ultricies, sem eget volutpat commodo, massa justo iaculis sem,
sit amet tempor dui lorem tristique elit. Phasellus nec ornare augue, quis
scelerisque diam. Curabitur accumsan, lectus quis accumsan dictum, ligula sem
fringilla enim, a rhoncus justo urna eu odio.</p>
36.
37. </td>
38.
39. </tr>
40.
41. <tr>
42.
43. <td>
44.
46.
47. </td>
48.
49. </tr>
50.
51. </table>
52.