Invatare Atomica

Structura unui Document HTML

Progres lectie:
0%
🎯

Obiectivul lectiei

Invata cum sa construiesti scheletul unei pagini web — de la prima linie de cod pana la o pagina completa, organizata si functionala.

Dupa aceasta lectie vei putea:

  • Sa analizezi doctype si structura de baza
  • Sa descrii sectiunea <head> — creierul paginii
  • Sa utilizezi titluri <h1> - <h6> si paragrafe <p>
  • Sa aplici imbricare (nesting) si indentare
  • Sa aplici exemplu complet: pagina "portofoliul meu"

Incearca singur!

✍️ Incearca Singur!

Inainte sa inveti teoria, incearca sa creezi o pagina web simpla. Nu conteaza daca nu iese perfect!

🏆 Provocare: Creeaza pagina ta "Despre Mine"

Creeaza o pagina HTML cu informatii despre tine: un titlu principal, trei sectiuni (Cine sunt, Hobby-uri, Scoala) cu subtitluri si paragrafe sub fiecare. Foloseste structura corecta HTML cu DOCTYPE, head si body.

  1. Deschide OneCompiler (link mai jos) sau Notepad pe calculatorul tau
  2. Copiaza codul de baza de mai jos si lipeste-l in editor
  3. Completeaza titlul paginii cu numele tau (intre tag-urile <title>)
  4. Adauga un titlu principal <h1> cu "Despre Mine" in sectiunea <body>
  5. Adauga 3 subtitluri <h2> pentru sectiunile "Cine sunt", "Hobby-uri" si "Scoala"
  6. Sub fiecare subtitlu, adauga cate un paragraf <p> cu informatii despre tine
<!-- Codul de baza - copiaza si completeaza -->
<!DOCTYPE html>
<html lang="ro">
<head>
    <meta charset="UTF-8">
    <title>Scrie numele tau aici</title>
</head>
<body>

    <!-- Adauga titlul principal aici -->

    <!-- Adauga subtitlurile si paragrafele aici -->

</body>
</html>
🔗 Deschide OneCompiler HTML (editor online gratuit)

💡 Indicii (daca te blochezi):

Indiciu 1: Cum adaug un titlu principal?
Foloseste tag-ul <h1> in interiorul <body>. Exemplu:

<h1>Despre Mine</h1>

Tag-ul <h1> este cel mai mare titlu. Scrie-l imediat dupa <body>.
Indiciu 2: Cum adaug subtitluri si paragrafe?
Foloseste <h2> pentru subtitluri si <p> pentru paragrafe. Exemplu:

<h2>Hobby-uri</h2>
<p>Imi place sa joc fotbal si sa programez.</p>

Pune fiecare <h2> inainte de <p>-ul corespunzator.
Indiciu 3: Cum ar trebui sa arate codul complet?
Codul final ar trebui sa arate cam asa:

<body>
  <h1>Despre Mine</h1>
  <h2>Cine sunt</h2>
  <p>Salut! Ma numesc ... si am ... ani.</p>
  <h2>Hobby-uri</h2>
  <p>Imi place sa ...</p>
  <h2>Scoala</h2>
  <p>Invat la ...</p>
</body>

Observa cum fiecare titlu este urmat de un paragraf, si totul este in interiorul <body>.
Bonus Challenge

Adauga si un al treilea nivel de titluri! Sub sectiunea "Hobby-uri", pune un <h3> pentru fiecare hobby si un <p> cu detalii. De exemplu: <h3>Fotbal</h3> si <h3>Informatica</h3>.

1

1. DOCTYPE si Structura de Baza

1

Fundatia pe care se construieste orice pagina web

Fiecare document HTML incepe cu o declaratie DOCTYPE si contine trei elemente esentiale: <html>, <head> si <body>.

<!DOCTYPE html> — este prima linie din orice pagina web. Nu este un tag HTML propriu-zis, ci o instructiune care spune browser-ului: "Acest document foloseste HTML5, cea mai noua versiune."

Analogy

🏠 Analogie din viata reala

Gandeste-te la o casa. Inainte de a construi, ai nevoie de un plan (DOCTYPE) care spune ce tip de constructie faci. Apoi casa are o structura (<html>) formata din doua parti: acoperisul (<head>) — care protejeaza si contine lucruri invizibile din exterior (izolatie, cabluri) — si camerele (<body>) — unde locuiesti si unde se vede totul.

Visual Tree Diagram

Structura unui Document HTML
<!DOCTYPE html> ← Declaratie: "Folosesc HTML5"
<html lang="ro"> ← Elementul radacina (contine tot)
<head> ← Informatii invizibile
<meta charset="UTF-8">
<title> Titlul din tab-ul browser-ului
<body> ← Continutul vizibil
<h1>, <p>, etc. Ce vede utilizatorul

Code example

<!DOCTYPE html>
<html lang="ro">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pagina Mea</title>
</head>
<body>
    <!-- Continutul paginii vine aici -->
</body>
</html>

Info boxes

ℹ️
Ce face fiecare element?
<html lang="ro"> — Containerul principal. Atributul lang="ro" spune browser-ului ca pagina este in romana.
<head> — Contine informatii invizibile: titlul din tab, setul de caractere, legaturi catre stiluri.
<body> — Contine tot ce vede utilizatorul pe pagina: texte, imagini, linkuri.
💡
Sfat important
<meta charset="UTF-8"> permite afisarea corecta a caracterelor speciale si a diacriticelor romanesti (a, i, s, t). Fara el, literele cu diacritice pot aparea ca simboluri ciudate!
2

2. Sectiunea — Creierul Paginii

2

Informatii importante pe care browser-ul le citeste, dar utilizatorul nu le vede

Sectiunea <head> contine metadate — informatii despre pagina, nu continutul paginii in sine. Cele mai importante elemente sunt:

<title> — Textul care apare in tab-ul browser-ului si in rezultatele Google.

<meta> — Tag-uri care furnizeaza informatii suplimentare: setul de caractere, descrierea paginii, compatibilitatea cu mobilul.

Analogy

📱 Analogie: Profilul de pe Instagram

Gandeste-te la profilul tau de Instagram. <title> este ca numele de utilizator — apare in bara de sus si cand cineva te cauta. <meta> sunt ca setarile contului: limba, confidentialitatea, descrierea — informatii pe care aplicatia le foloseste, dar nu le afiseaza direct in feed.

Tags table

Elemente comune din <head>
Element Ce face Exemplu
<title> Titlul din tab-ul browser-ului <title>Pagina Mea</title>
<meta charset> Setul de caractere (pentru diacritice) <meta charset="UTF-8">
<meta viewport> Compatibilitate cu ecranele mobile <meta name="viewport" ...>
<meta description> Descrierea paginii (pentru Google) <meta name="description" content="...">
⚠️
Atentie!
Tag-ul <title> este obligatoriu in orice pagina HTML. Fara el, tab-ul browser-ului va arata doar calea fisierului, ceea ce arata neprofesional. In plus, motoarele de cautare (Google) folosesc <title> ca titlu al rezultatului.
<head>
    <!-- Setul de caractere - MEREU primul! -->
    <meta charset="UTF-8">

    <!-- Compatibilitate cu telefonul -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <!-- Titlul din tab -->
    <title>Portofoliul lui Andrei | Clasa a VIII-a</title>

    <!-- Descriere pentru Google -->
    <meta name="description" content="Portofoliul meu online cu proiecte de scoala">
</head>
3

3. Titluri

-

si Paragrafe

3

Elementele care dau structura si claritate continutului vizibil

In HTML exista 6 niveluri de titluri, de la <h1> (cel mai important) la <h6> (cel mai putin important). Tag-ul <p> defineste un paragraf de text.

Analogy

📖 Analogie: Cuprinsul unei carti

Gandeste-te la cuprinsul unei carti. Titlul cartii este <h1> (apare o singura data). Capitolele sunt <h2>. Sub-capitolele sunt <h3>. Iar textul propriu-zis din carte este <p>. Nu ai pune un subtitlu inaintea titlului principal — la fel si in HTML, respecti ierarhia.

Headings visual demo

Cum arata cele 6 niveluri de titluri
<h1> Titlu Principal ← cel mai mare (1 per pagina)
<h2> Capitol ← sectiuni principale
<h3> Sub-capitol ← sub-sectiuni
<h4> Sectiune mica ← detalii
<h5> Detaliu ← rar folosit
<h6> Sub-detaliu ← cel mai mic
Greseala frecventa
Nu folosi titlurile doar pentru a face textul mai mare! Titlurile au un rol semantic — ele spun browser-ului si motoarelor de cautare care sunt sectiunile importante. Daca vrei text mare fara a fi titlu, foloseste CSS (stiluri), nu <h1>.
💡
Regula de aur
Foloseste un singur <h1> pe pagina (titlul principal). Apoi poti avea mai multe <h2>, sub fiecare <h2> poti avea <h3>, si asa mai departe. Nu sari niveluri — nu trece de la <h1> direct la <h4>!

Code example: headings and paragraphs

<body>
    <h1>Portofoliul Meu Online</h1>
    <p>Bine ai venit pe pagina mea personala!</p>

    <h2>Despre Mine</h2>
    <p>Ma numesc Andrei si sunt elev in clasa a VIII-a.</p>
    <p>Imi place informatica si sportul.</p>

    <h2>Proiectele Mele</h2>
    <h3>Proiect la TIC</h3>
    <p>Am creat un grafic in Excel despre temperatura.</p>
    <h3>Proiect Personal</h3>
    <p>Am invatat sa fac o pagina web de la zero!</p>
</body>
ℹ️
Tag-ul <p> — Paragraful
Browser-ul adauga automat spatiu inainte si dupa fiecare paragraf <p>. Daca scrii text fara <p>, textul va fi lipit intr-un singur bloc. Fiecare idee sau propozitie noua ar trebui sa fie in propriul paragraf.
4

4. Imbricare (Nesting) si Indentare

4

Regulile care fac codul tau curat, organizat si corect

Imbricarea (nesting) inseamna sa pui tag-uri in interiorul altor tag-uri, respectand o ierarhie corecta. Indentarea inseamna sa adaugi spatii la inceputul liniei pentru a face codul mai usor de citit.

Analogy

🎒 Analogie: Papusi Matrioska

Imbricarea in HTML functioneaza ca papusile rusesti Matrioska: o papusa mare contine una mai mica, care contine una si mai mica. In HTML, <html> contine <body>, care contine <h1>. Important: trebuie sa inchizi papusile in ordinea inversa — intai pe cea mica, apoi pe cea mare. Nu poti inchide papusa mare inainte de a o inchide pe cea mica!

Nesting visualization

Vizualizarea Imbricarii
<html> Nivel 0 — radacina
<head> Nivel 1 — in interiorul html
<title> Pagina Mea </title> Nivel 2
</head>
<body> Nivel 1 — in interiorul html
<h1> Titlu </h1> Nivel 2
<p> Paragraf </p> Nivel 2
</body>
</html>

Good vs Bad nesting

Imbricare CORECTA
<html> <body> <h1>Titlu</h1> <p>Text.</p> </body> </html>

Tag-urile se inchid in ordine inversa: ultimul deschis = primul inchis.

Imbricare GRESITA
<html> <body> <h1>Titlu <p>Text.</h1> </p> </html> </body>

Tag-urile se incaleca (h1 se inchide dupa p) si ordinea de inchidere e gresita!

⚠️
Regula de Aur a Imbricarii
Tag-urile se inchid in ordine inversa deschiderii. Gandeste-te asa: primul deschis = ultimul inchis. Ca la un rucsac: primul obiect pus este ultimul scos.
💡
De ce conteaza indentarea?
Indentarea (spatiile de la inceputul liniei) nu afecteaza cum arata pagina in browser. Dar face codul mult mai usor de citit pentru tine si alti programatori. Foloseste 2 sau 4 spatii (sau un Tab) pentru fiecare nivel de imbricare. Imagineza-ti ca scrii un text fara paragrafe si alineate — ar fi imposibil de citit!
5

5. Exemplu Complet: Pagina "Portofoliul Meu"

🎯

Exemplu Complet: Pagina "Portofoliul Meu"

Iata o pagina HTML completa care foloseste toate conceptele invatate. Observa structura, imbricarea si indentarea:

<!DOCTYPE html>
<html lang="ro">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Portofoliul lui Andrei</title>
    <meta name="description" content="Portofoliul meu online - proiecte si hobby-uri">
</head>
<body>
    <h1>Portofoliul lui Andrei</h1>
    <p>Bine ai venit! Aceasta este pagina mea personala.</p>

    <h2>Despre Mine</h2>
    <p>Ma numesc Andrei, am 14 ani si sunt elev in clasa a VIII-a
    la Colegiul National din Bucuresti.</p>
    <p>Sunt pasionat de tehnologie si sport.</p>

    <h2>Hobby-urile Mele</h2>

    <h3>Fotbal</h3>
    <p>Joc fotbal de 5 ani. Pozitia mea preferata este atacant.</p>

    <h3>Programare</h3>
    <p>Am inceput sa invat HTML si CSS. Visul meu este sa creez
    un joc video!</p>

    <h2>Proiecte de Scoala</h2>
    <p>Anul acesta am realizat mai multe proiecte interesante.</p>

    <h3>Grafice in Excel</h3>
    <p>Am creat grafice despre clima din Romania folosind date reale.</p>

    <h3>Prima Pagina Web</h3>
    <p>Aceasta pagina este primul meu proiect web!</p>
</body>
</html>

Step-by-step trace

🔍
Analiza pas cu pas a exemplului
Linia 1: <!DOCTYPE html> — spune browser-ului ca e HTML5
Linia 2: <html lang="ro"> — incepe documentul, limba romana
Liniile 3-7: <head> — metadate: charset, viewport, titlu, descriere
Liniile 8-30: <body> — continutul vizibil cu ierarhie: h1 > h2 > h3 > p
Ultima linie: </html> — inchide documentul

Observa cum h3 (Fotbal, Programare) este sub h2 (Hobby-urile Mele), iar textul explicativ este in tag-uri p. Fiecare nivel este indentat cu 4 spatii.

Exercitii practice

Exercitiul 1 (Nivel minim) - 1. Pagina Web a Clasei Tale

Creativ

Creeaza o pagina HTML completa pentru clasa ta. Include:

  • Un titlu principal cu numele clasei
  • Sectiuni (<h2>) pentru: Profesorii nostri, Materiile preferate, Activitati extra-scolare
  • Sub fiecare sectiune, sub-titluri (<h3>) si paragrafe cu detalii
  • Un titlu (<title>) descriptiv in <head>

Pagina trebuie sa aiba minim 30 de linii de cod si sa foloseasca corect structura DOCTYPE, html, head, body.

Incepe cu scheletul de baza (<!DOCTYPE html>, <html>, <head>, <body>). In <head> pune <title> si <meta charset>. In <body> pune <h1> pentru titlul clasei, apoi repeta secventa <h2> + <h3> + <p> pentru fiecare sectiune. Gandeste-te la cuprinsul unei carti: titlul cartii = h1, capitolele = h2, sub-capitolele = h3.

Exercitiul 2 (Nivel standard) - 2. Corecteaza Pagina Gresita

Practic

Urmatorul cod HTML contine 6 greseli. Gaseste-le si corecteaza-le:

<!-- Cod cu greseli - gaseste si corecteaza! -->
<html>
<body>
<head>
    <title>Pagina Mea
</head>
    <h3>Bine ai venit</h3>
    <h1>Despre Mine</h1>
    <p>Ma numesc Ana.
    <p>Am 14 ani.</h2>
</body>
</html>

Rescrie codul complet si corect in OneCompiler. Verifica ca pagina se afiseaza frumos in browser.

Greselile sunt: (1) Lipseste <!DOCTYPE html>, (2) <head> si <body> sunt inversate - <head> trebuie sa fie inaintea lui <body>, (3) Tag-ul <title> nu este inchis - lipseste </title>, (4) <h3> este folosit inaintea lui <h1> - ierarhia e gresita, (5) Primul <p> nu este inchis - lipseste </p>, (6) Al doilea paragraf se inchide cu </h2> in loc de </p>.

Exercitiul 3 (Nivel performanta) - 3. Compara si Explica

Analitic

Raspunde la urmatoarele intrebari in scris (in caiet sau intr-un document):

  1. Care este diferenta dintre <h1> si <title>? Unde apare fiecare?
  2. De ce crezi ca este important sa existe o sectiune <head> separata de <body>? Ce ar fi daca totul ar fi intr-un singur loc?
  3. Compara o pagina HTML cu un eseu scris la romana. Ce elemente HTML corespund titlului, capitolelor, paragrafelor si numelui autorului din eseu?
Intrebarea 1: <h1> apare PE pagina si este vizibil utilizatorului. <title> apare in tab-ul browser-ului si in rezultatele Google, dar nu pe pagina in sine.

Intrebarea 2: Gandeste-te ca <head> contine "instructiuni" pentru browser (ce caractere sa foloseasca, cum sa apara in Google), iar <body> contine "continutul" pentru utilizator. Fara aceasta separare, browser-ul nu ar sti ce sa afiseze si ce sunt doar setari.

Intrebarea 3: Titlul eseului = <h1>, capitolele = <h2>, paragrafele = <p>, numele autorului si clasa (informatii despre eseu, nu continut) = <head> cu <title> si <meta>.

Ce ai invatat astazi

  • — declara versiunea HTML5 si este prima linie din orice pagina web
  • , , — cele trei elemente fundamentale care formeaza structura unui document HTML
  • si <meta>— metadate esentiale din <head> care definesc titlul din tab si setarile paginii</li> <li><h1> - <h6> si <p>— titluri ierarhice si paragrafe pentru organizarea continutului vizibil</li> <li>Imbricare si indentare— reguli pentru cod curat: tag-urile se inchid in ordine inversa si fiecare nivel are indentare</li> </ul> </div> <div id="lesson-summary" style="display: none;"></div> <div class="next-lesson"> <h3>Urmatoarea lectie</h3> <p>Continua cu lectia urmatoare pentru a aprofunda cunostintele.</p> <a href="lectia6-evaluare-m3.html" class="btn-next">Continua →</a> </div> </section> </div> <!-- ═══════════════ SCRIPTS ═══════════════ --> <script src="../../../../assets/js/atomic-learning.js"></script> <script src="../../../../assets/js/practice-simple.js"></script> <script src="../../../../assets/js/lesson-summary.js"></script> <script src="../../../../assets/js/breadcrumb.js"></script> <script src="../../../../assets/js/progress.js"></script> <script src="../../../../assets/js/user-system.js"></script> <script> document.addEventListener('DOMContentLoaded', function() { AtomicLearning.init('cls8-m3-grafice-web-lectia5-structura-html'); PracticeSimple.init('cls8-m3-grafice-web-lectia5-structura-html'); LessonSummary.init('cls8-m3-grafice-web-lectia5-structura-html'); Breadcrumb.init({ grade: 'cls8', gradeName: 'Clasa a VIII-a', module: 'm3-grafice-web', moduleName: 'M3 Grafice Web', lesson: 'Structura unui Document HTML' }); LearningProgress.init('cls8', 'm3-grafice-web', 'lectia5-structura-html.html'); }); </script> </body> </html>