Lec ia 1: Structura unui document HTML. Notiuni de baza.

1.1 Ce este HTML?
HTML (HyperText Markup Language) a fost dezvoltat initial de Tim Berners-Lee in anul 1989, ca urmare a necesitatii de publicare a informatiilor la nivel global. Pe parcursul anilor, limbajul a evoluat (HTML 3.0, HTML 3.2, HTML 4 si cel mai recent HTML 4.01), fiecare versiune oferind noi facilitati. Se remarca cateva trasaturi cum ar fi: • • • independenta de platforma (modul de afisare al unui document este acelasi, indiferent de computerul pe care se realizeaza afisarea); structurarea formatarii; posibilitatile hypertext (orice cuvant, imagine sau alt element al documentului vizualizat de utilizator poate face referinta la un alt document, ceea ce usureaza navigarea in cadrul aceluiasi document sau intre documente diferite).

HTML este un limbaj simplu, compus din coduri speciale (marcaje) care se insereaza intr-un text pentru a adauga informatii despre formatare. Este derivat din SGML (Standard Generalized Markup Language), un sistem pentru definirea tipurilor de documente structurate, destinat sa reprezinte instante ale acestor tipuri de documente. La baza SGML si a HTML se afla acelasi principiu: descrierea continutului unui document se face intr-un fisier text obisnuit (ASCII). S-a urmarit ca aceste fisiere sa fie editabile cu aplicatii software nepretentioase (ex. NotePad, WordPad). In cadrul unui document HTML, un marcaj (tag, in limba engleza) va avea forma <nume_marcaj> . Parantezele unghiulare sunt elementele care indica prezenta unui marcaj; numele marcajelor poate fi scris oricum, limbajul nefiind senzitiv la literele mari/mici (case sensitive). Unele marcaje permit utilizarea unor atribute care se vor scrie in marcajul de inceput: <nume_marcaj optiune1=valoare1 optiune2=valoare2 ...> ................ </nume_marcaj>

Exista doua tipuri de marcaje: - individuale (ex. <br>) - perechi (ex. <p>...</p>) - de mentionat ca sfarsitul unui marcaj este indicat prin utilizarea caracterului '/' in fata numelui de marcaj In functie de modul de formatare a paginii, avem marcaje de tip: - block: este afisat sub elementul anterior (ex. <p>)

1

- inline: este afisat dupa elementul anterior (ex. <span>) - table: este afisat sub forma unui tabel Marcajele perechi pot fi imbricate: <nume_marcaj1> <nume_marcaj2> ................ </nume_marcaj2> </nume_marcaj1>

Browserele vor ignora marcajele si optiunile pe care nu le recunosc.

1.2 Structura unui document HTML
Un document HTML 4 are urmatoare structura: 1. o linie continand versiunea HTML 2. sectiunea HEAD, delimitata de marcajele <HEAD> </HEAD> 3. sectiunea BODY, delimitata de marcajele <BODY> </BODY> sau <FRAMESET> </FRAMESET>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Prima mea pagina web</title> </head> <body> ........... </body> </html>

Un document HTML valid contine declaratia versiunii HTML utilizate. Declaratia se face prin intermediul DTD (document type definition). Pe scurt, fisierul DTD contine definitiile marcajelor din versiunea respectiva de HTML. HTML 4.01 specifica 3 variante DTD : • HTML 4.01 Strict DTD include toate elementele si atributele care nu sunt "invechite" (elemente si atribute a caror utilizare nu este recomandata deoarece se doreste renuntarea la acestea pe viitor) sau care nu apar in documentele ce contin cadre. HTML 4.01 Transitional DTD include Strict DTD plus elementele si atributele "invechite". HTML 4.01 Frameset DTD include Transitional DTD plus cadrele (frames). HTML 4.01 Strict DTD HTML 4.01 Transitional DTD <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

• •

2

HTML 4.01 Frameset DTD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

1.2.1 Sectiunea HEAD
Cuprinde informatii care nu vor fi afisate in browser, cu exceptia marcajului <title>. Marcajul <title> este obligatoriu si poate apare doar in sectiunea HEAD. El va contine un titlu relevant pentru pagina, fiind deosebit de important pentru motoarele de cautare. Alte marcaje care apar in sectiune HEAD: • <META> - poate contine cuvinte cheie, o descriere a paginii, numele autorului paginii, frecventa (teoretica) cu care motoarele de cautare ar trebui sa reindexeze pagina, etc. Declaratiile META implica in general declararea unei proprietati si a valorii asociate acelei proprietati. <META NAME="nume" CONTENT="continut"> Declararea setului de caractere se face astfel: <META http-equiv="Content-Type" content="text/html; charset=set_caractere">

Precizarea setului de caractere face posibila afisarea in browserul utilizatorului a caracterelor specifice unor limbi precum romana, rusa, araba, etc.

<style>- cascading style sheets - stiluri pentru formatarea textului din documentul HTML. <style type="text/css">...</style>

<script> - scripturi JavaScript sau VBScript <script language="JavaScript1.2" type="text/javascript" src="lib.js"></script>

<base> - stabileste URL-ul de "baza" al documentului. Toate referintele (<a href=""></a>, respectiv <img src="">) din documentul respectiv vor fi deschise relativ la marcajul <base>. <head> <base href="http://www.xprim.ro/index.php" target="_top"> </head>

<link> - stabileste o legatura cu un document extern, spre exemplu un fisier de definitii CSS.

3

<link rel="stylesheet" href="stiluri.css" type="text/css">

Sectiunea HEAD a unui document HTML poate arata in felul urmator: <head> <title>Titlul paginii mele</title> <META http-equiv="Content-Type" content="text/html; charset=windows-1250"> <META name="author" content="Popescu Ion"> <META name="copyright" content="© 2003 InsideMedia"> <META name="keywords" content="curs, html, gratuit, elearning"> <link rel="stylesheet" href="stiluri.css" type="text/css"> </head>

1.2.2 Sectiunea BODY

Este inclusa intre marcajele <body>...... </body> <BODY [ BACKGROUND="adresa_imagine"] [ BGCOLOR="#rrggbb"|"culoare"] [ TEXT="#rrggbb"|"culoare"] [ LINK="#rrggbb"|"culoare"] [ VLINK="#rrggbb"|"culoare"] [ ALINK="#rrggbb"|"culoare"] [ LEFTMARGIN=marg_st] [ TOPMARGIN=marg_top]> ................ continut document ................. </BODY> Marcajul de sfarsit (</BODY>) nu este obligatoriu In sectiunea BODY se gaseste informatia care va fi afisata in browser (text, imagini, etc.) (<body>.... </body>).

LEFTMARGIN si TOPMARGIN sunt extensii Microsoft (nu functioneaza decat in Internet Explorer 3+). • • LEFTMARGIN precizeaza, în pixeli, marginea stanga a documentului (distanta dintre fereastra si continutul documentului); TOPMARGIN precizeaza, in pixeli, marginea de sus a documentului (distanta dintre fereastra si continutul documentului)

Ca in orice limbaj de programare in HTML exista posibilitatea de a introduce comentarii, folosind marcajul

4

<!-- .... textul comentariului -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Titlul paginii mele</title> <META http-equiv="Content-Type" content="text/html; charset=windows-1250"> <META name="author" content="Popescu Ion"> <META name="copyright" content="© 2003 InsideMedia"> <META name="keywords" content="curs, html, gratuit, elearning"> <link rel="stylesheet" href="stiluri.css" type="text/css"> </head> <body bgcolor="#999999" leftmargin=0 topmargin=0> <!--Aceasta linie nu va fi afisata in browser --> <p>text text text text text text text text text text </p> <p>alt text alt text alt text alt text alt text </p> </body> </html> In exemplul de mai sus a aparut un nou marcaj <p> (paragraf). Alaturi de el trebuie mentionate marcajele <h1>, <h2>, <h3>, <h4>, <h5>, <h6> (headings - toate necesita marcaj de inchidere) care sunt folosite in general pentru evidentierea titlurilor. (exemplu) Pentru formatarea textului pot fi folosite si marcajele: • • • • • <b>...</b> - caractere ingrosate <i>...</i> - caractere inclinate <u>...</u> - caractere subliniate <s>...</s> - caractere "taiate" <pre>...</pre> - marcajul de informatie preformatata conserva toata caracterele si spatierile de linii utilizeaza un font diferit (Courier) <sup>...</sup> - exponent <sub>...</sub> - indice <br> - "rupe" textul, trecand pe o linie noua - poate apare oriunde in text <hr> - traseaza o linie subtire orizontala

• • • •

Acest exemplu evidentieaza efectele marcajelor mentionate mai sus. Marcajul <font>...</font> ofera posibilitatea modificarii dimensiunii, culorii si a tipului de font utilizat (exemplu) Ultimele 2 marcaje asupra carora ne vom opri in aceasta lectie sunt marcajele <span> si <div>(ambele necesita marcaj de inchidere):. • <span> este un marcaj de tip "inline". Se foloseste in general in interiorul marcajelor de tip "block" (ex. <p>) in combinatie cu stilurile CSS, pentru a

5

respectiv (exemplu). spre deosebire de <span>, marcajul <div> este de tip "block". Se foloseste in general pentru pozitionare in cadrul documentului si pentru specificarea unor proprietati CSS care sa fie aplicate textului din interiorul lui (exemplu).

<DIV [ ALIGN="left|center|right"] style=".."> ................................. </DIV>

1. Conform specificatiilor HTML 4.01, este recomandata folosirea marcajului <div> pentru centrarea textului, in locul marcajului <center> exemplu. 2. <div> poate fi folosit ca un container pentru alte elemente de tip "block". Exemplu: se pot include 2 sau mai multe paragrafe intr-un marcaj <div>, insa pentru a se evita formatarea explicita pe fiecare paragraf in parte (ex. fontul), se va defini stilul de formatare pentru marcajul <div>, stil care va fi preluat de paragrafele mentionate.

1. Vizualizeaza sursele exemplelor si comenteaza-le in seminarul online 2. Realizeaza o pagina HTML (folosind NotePad) care sa includa toate marcajele prezentate in aceasta lectie. Valideaza pagina la adresa http://validator.w3.org/

6

Lec ia 2: Liste si referinte

2.1 Liste
HTML ofera mai multe mecanisme pentru specificarea listelor de informatii. Exista 3 tipuri de liste, fiecare tip trebuie sa includa cel putin un element: 1. liste de tip definitie 2. liste ordonate (numerotate) 3. liste neordonate (marcate)

2.1.1 Liste de tip definitie
Unul dintre cele mai obisnuite elemente in paginile HTML este un set de definitii, referinte sau indexuri. Un exemplu concret il reprezinta glosarele; cuvintele sunt listate alfabetic, insotite de definitiile termenilor respectivi. Lista de tip definitie este introdusa de marcajele: • • • <dl>...</dl> - lista definitii (definition list) <dt> - termenul definit (definition term) <dd> - definitie (definition)

<html> <head> <title>Lista de tip definitie</title> </head> <body> <dl> <dt>Applet Java <dd>Aplicatie Java inclusa intr-un document HTML <dt>Cookie <dd>Mecanism de comunicare intre client si server <dt>Domeniu <dd>Nume unic prin care se identifica un site pe Internet </dl> </body> </html> Poti vizualiza exemplul de mai sus in browserul tau aici.

2.1.2 Liste neordonate
Sunt introduse de marcajele: • • <ul>...</ul> - lista neordonata (unordered list) <li> - element lista

7

<html> <head> <title>Lista neordonata</title> </head> <body> <p>In HTML sunt disponibile 3 tipuri de liste:</p> <ul type="square"> <li>liste de tip definitie <li>liste neordonate <li>liste ordonate </ul> </body> </html> Poti vizualiza exemplul de mai sus in browserul tau aici. Atributul square precizeaza tipul maracatorului

2.1.3 Liste ordonate
Sunt introduse de marcajele: • • <ol>...</ol> - lista ordonata (ordered list) <li> - element lista

<html> <head> <title>Lista ordonata</title> </head> <body> <p>In HTML sunt disponibile 3 tipuri de liste: <ol start="2"> <li>liste de tip definitie <li>liste neordonate <li>liste ordonate </ol> </body> </html> Poti vizualiza exemplul de mai sus in browserul tau aici. Atributul start seteaza numarul de inceput pentru primul element al listei ordonate. Diferenta dintre listele ordonate si cele neordonate consta in inlocuirea punctelor din enumerare cu numere. Vizualizand in browser exemplele mentionate anterior, vei intelege diferentele in modul de afisare a fiecarui tip de lista.

8

1. Vizualizeaza sursele exemplelor si comenteaza-le in seminarul online 2. Realizeaza o pagina HTML (folosind NotePad) care sa includa toate tipurile de liste. Valideaza pagina la adresa http://validator.w3.org/

2.2 Referinte (link-uri)
Marcajul HTML principal pentru introducerea referintelor catre alte pagini HTML sau catre elemente din cadrul aceleiasi pagini web este <a>. El trebuie sa contina atribute, in caz contrar neafectand formatarea documentului. Exemplul urmator nu va afecta formatarea documentului: <a>Aici</a> ar trebui sa fie un link !

Pentru a activa linkul de mai sus vom adauga atributul href. Exemplul urmator arata formatarea documentului: <a href="pagina.html">Aici</a> este un link !

Referintele pot fi absolute (ex. <a href="http://www.domeniu.ro/pagina.html">http://www.domeniu.ro/pagina.html<a>) sau relative (ex. <a href="pagina.html">pagina.html<a>). Referintele relative sunt folosite in interiorul siturilor. Ele functioneaza pe baza faptului ca browserul adauga automat numele domeniului la fiecare referinta (presupunand ca exista o pagina la adresa http://www.hostx.ro/director/pagina.html si o referinta relativa catre pagina2.html, browserul va construi referinta http://www.hostx.ro/director/pagina2.html in momentul in care pagina2.html este solicitata) Referintele absolute le vei folosi atunci cand vrei sa trimiti utilizatorul pe un alt site (domeniu); pot fi folosite si in interiorul unui site, insa va implica un efort mai mare in scrierea paginilor (pe scurt, ai mai mult de tastat), iar in cazul in care muti situl pe un alt domeniu vei fi nevoit sa re-editezi toate referintele. Referintele pot fi catre pagini html, dar si catre alte tipuri de fisiere (imagini, fisiere audio, video, documente in alte formate, etc.) Acest exemplu evidentieaza efectele marcajelor mentionate mai sus.

Presupunem ca ai un site cu urmatoare structura de directoare:

9

/director1 /director2 Pentru a apela o pagina HTML aflata in director2 dintr-o pagina aflata in director1 voi folosi urmatoarea secventa: <a href="../director2/pagina.html">Un link oarecare</a> Pentru a apela o pagina HTML aflata in director1 dintr-o pagina aflata in radacina (nivelul superior al sitului) voi folosi urmatoarea secventa: <a href="director1/pagina.html">Un link oarecare</a>

2.2.1 Ancore
Pana acum am prezentat modul de realizare a referintelor externe, catre alte pagini sau catre alte situri. Ce se intampla insa in cazul in care avem un document de dimensiuni mari si vrem sa introducem referinte catre anumite sectiuni ale sale? Solutia consta in utilizarea ancorelor.

Ancorele asigura usurinta in navigare in paginile de dimensiuni mari. O ancora are urmatorul format <a name="nume_ancora">...</a> Numele ancorelor nu poate contine spatii si trebuie sa fie unic in pagina respectiva !

In exemplul urmator vei vedea o greseala posibila in atribuirea numelui ancorelor: <a name="xxx">...</a> <a name="XXX">...</a> In HTML xxx si XXX inseamna acelasi lucru! Odata definita ancora trebuie definita si legatura activa catre ancora respectiva. Ea va fi o referinta hypertext in formatul urmator: <a href="#nume_ancora">Link catre ancora</a> Acest exemplu evidentieaza efectele marcajelor mentionate mai sus. Trebuie retinut ca exista posibilitatea de a crea referinte catre ancore aflate in documente externe: <a href="pagina.htm#nume_ancora">Link catre ancora externa</a>

1. Vizualizeaza sursele exemplelor si comenteaza-le in seminarul online 2. Realizeaza o pagina HTML (folosind NotePad) pe baza unui text existent, care sa includa ancore. Folosind pagina realizata la exercitiul precedent (liste) si insereaza

10

linkuri catre ancorele create.

11